2009-08-12 113 views

回答

2

我不知道什么是“应用程序ID”你是指,但对于应用程序的一个唯一的标识符,您可以使用:

getApplication()getPackageName()方法,从当前的活动

+2

每个安装的应用程序有一个唯一的ID ...是有可能从其他应用程序 – arams 2009-08-12 09:27:51

+2

得到一个应用程序的唯一ID不是吧'getApplicationContext()。getPackageName()'? – 2016-02-26 02:53:39

0

PackageInfo.sharedUserId字段将显示在清单中分配的用户Id

如果你想两个应用程序具有相同的用户id,这样他们就可以看到对方的数据,并在同一个进程中运行,然后将它们分配清单中的相同用户名:

android:sharedUserId="string" 

两个包带相同的sharedUserId也需要具有相同的签名。

我也建议您阅读here以正确方向轻推。

+0

2个不同的应用程序使用相同的程序包名称意味着,应用程序可以共享数据吗?... – arams 2009-08-13 06:19:01

+0

否。如果两个应用程序具有相同的shareUserId,并且使用相同的签名签名,则可以共享数据。包名不是问题。 – Will 2009-08-14 00:15:31

0

如果整个目的是与其他应用程序通信数据,请使用Intent的sendBroadcast方法。

1

否则你可以得到进程的ID您的应用程序在运行:

最终静态INT android.os.Process.myPid()
返回此进程的标识,它可以与killProcess使用(INT )和sendSignal(int,int)。

30

如果application id,你指的是package name,则可以使用该方法Context::getPackageNamehttp://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29)实际设备标识符

  • Settings.Secure.ANDROID_ID

    如果你想与其他应用程序进行通信,有多种方法:

    1. 启动另一个应用程序的活动,并在“其他”发送数据的“意图”
    2. 的发送广播如果您只需要共享结构化数据,请使用内容提供商
    3. 如果其他应用程序需要在后台连续运行,请使用Server并将您自己“绑定”到服务。

    如果您可以详细说明您的具体要求,社区将能够更好地为您提供帮助。

  • +0

    如果我想显示应用程序列表,并且需要将该ID作为整数,就像所有列表适配器都需要一样,该怎么办?我可以使用安装时间,但它是一个很长的类型。将它转换为int仍然有帮助? – 2015-11-08 23:38:20

    +2

    包名通常不是applicationId,当您通过build.gradle进行设置时! – 2017-02-24 13:16:15

    0

    如果您使用的是新的Gradle构建系统,那么getPackageName会奇怪地返回应用程序ID,而不是包名称。所以MasterGaurav的答案是正确的,但他并不需要与++

    如果应用程序ID,你指的是包的名字开始......

    查看更多有关分歧here

    **在这一点上不那么新

    ++我意识到,他的答案在2011年

    50

    非常有意义如果正在寻找在gradle这个applicationId定义的值,你可以简单地使用

    BuildConfig.APPLICATION_ID 
    
    +0

    Gradle太棒了!这是一个生活救星。 – hgoebl 2016-10-04 07:07:52

    +7

    如果你正在编写一个Android库,这不会有用 – 2017-09-13 09:54:32

    相关问题