如何获取Android应用程序ID?

ara*_*ams 79 android

在Android中,如何以编程方式(或通过其他方法)获取应用程序的id,以及如何使用该ID与其他应用程序进行通信?

小智 125

如果您正在寻找applicationIdgradle中定义的值,您可以简单地使用

BuildConfig.APPLICATION_ID 
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在编写Android库,这将不会那么有用 (22认同)
  • 我使用它在我的 Espresso 测试中获取 applicationId: private val targetContext = instrumentation.getTargetContext() private val applictionId = targetContext.getPackageName(); (2认同)

Gau*_*ish 43

如果是application id,您指的是package name,您可以使用该方法Context::getPackageName(http:// http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

如果您希望与其他应用程序通信,有多种方法:

  1. 启动另一个应用程序的活动,并在"意图"的"附加"中发送数据
  2. 发送具有特定操作/类别的广播,并在附加内容中发送数据
  3. 如果您只需要共享结构化数据,请使用内容提供商
  4. 如果其他应用程序需要在后台连续运行,请使用Server并将自己"绑定"到该服务.

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

  • 实际上,`Context.getPackageName()` _确实_返回应用程序 ID 和_不_包名称(尽管它们通常是相同的)。该方法有点令人困惑的名称是 legacy。来源:https://developer.android.com/studio/build/application-id (5认同)
  • 当你通过build.gradle设置它时,包名并不总是applicationId! (4认同)

ref*_*log 6

我不确定你指的是什么"应用程序ID",但是对于你的应用程序的唯一标识符,你可以使用:

来自当前活动的getApplication().getPackageName()方法

  • 是不是`getApplicationContext().getPackageName()`? (3认同)
  • 每个安装的应用程序都有一个唯一的ID ...是否可以从其他应用程序获取应用程序的唯一ID (2认同)

小智 5

要获取 AppId(或者有些人说的包名称),只需调用以下命令:

但请确保使用BuildConfig应用程序 ID 包路径导入

BuildConfig.APPLICATION_ID 
Run Code Online (Sandbox Code Playgroud)