如何获取Android应用程序ID?

时间:2009-08-12 05:45:15

标签: android

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

13 个答案:

答案 0 :(得分:106)

如果您要在gradle中查找applicationId定义的值,则只需使用

即可
BuildConfig.APPLICATION_ID 

答案 1 :(得分:41)

如果按application id提及package name,则可以使用方法Context::getPackageNamehttp://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29)。

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

  1. 启动另一个应用程序的活动,并在“意图”
  2. 的“附加内容”中发送数据
  3. 发送具有特定操作/类别的广播并在附加内容中发送数据
  4. 如果您只需要共享结构化数据,请使用内容提供商
  5. 如果其他应用程序需要在后台持续运行,请使用Server并“绑定”自己的服务。
  6. 如果您能详细说明您的具体要求,社区将能够更好地为您提供帮助。

答案 2 :(得分:5)

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

来自当前活动的

getApplication()。getPackageName()方法

答案 3 :(得分:1)

否则,您可以获取应用程序运行的进程ID:

final static int android.os.Process.myPid()
返回此进程的标识符,可以与killProcess(int)和sendSignal(int,int)一起使用。

答案 4 :(得分:1)

我不确定您需要的app /安装ID,但是您可以在Android开发人员的精彩文章中查看现有的可能性:

总结一下:

  • UUID.randomUUID()用于在安装后第一次运行应用程序并在之后进行简单检索时创建ID
  • TelephonyManager.getDeviceId()用于实际设备标识符
  • Settings.Secure.ANDROID_ID在相对现代的设备上

答案 5 :(得分:0)

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

如果您希望两个应用程序具有相同的userId,那么他们可以看到彼此的数据并在同一个进程中运行,然后在清单中为它们分配相同的userId:

android:sharedUserId="string"

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

我还建议您阅读here以便在正确的方向上轻推。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

  

如果按应用程序ID,则您指的是包名...

详细了解差异here

**此时不是那么新

++我意识到他的答案在2011年完全有道理

答案 8 :(得分:0)

Android App ES文件资源管理器在“用户应用”部分显示Android包名称,这对Bitwarden非常有用。 Bitwarden将此称为“android应用程序包ID(或包名称)”。

答案 9 :(得分:0)

要跟踪安装,您可以例如使用UUID作为标识符,并在安装后首次运行应用程序时简单地创建一个新的。这是一个带有一个静态方法Installation.id(Context context)的名为“ Installation”的类的示意图。您可以想象将更多特定于安装的数据写入INSTALLATION文件。

public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {

    if (sID == null) {  
       File installation = new File(context.getFilesDir(), INSTALLATION);
       try {
           if (!installation.exists())
               writeInstallationFile(installation);
           sID = readInstallationFile(installation);
       } catch (Exception e) {
           throw new RuntimeException(e);
       }
    }
   return sID;
}

private static String readInstallationFile(File installation) throws IOException {
   RandomAccessFile f = new RandomAccessFile(installation, "r");
   byte[] bytes = new byte[(int) f.length()];
   f.readFully(bytes);
   f.close();
   return new String(bytes);
}

private static void writeInstallationFile(File installation) throws IOException {
   FileOutputStream out = new FileOutputStream(installation);
   String id = UUID.randomUUID().toString();
   out.write(id.getBytes());
   out.close();
}

}

您可以在https://github.com/MShoaibAkram/Android-Unique-Application-ID

看到更多内容

答案 10 :(得分:0)

步骤1:Open the Google Play Store

第2步:在App Store中打开任何应用 Example: facebook

第3步:点击任意应用程序,然后查看浏览器链接,最后 id = com.facebook.katana&hl = zh_CN 将出现,this is your Apps Unique Id.

答案 11 :(得分:0)

包裹名称是您的android应用ID。

字符串appId = BuildConfig.APPLICATION_ID

https://play.google.com/store/apps/details?id=com.whatsapp

应用ID = com.whatsapp

答案 12 :(得分:0)

要获取AppId(或包名,有人怎么说),只需调用以下代码:

但是请确保使用您的应用ID包路径导入BuildConfig

BuildConfig.APPLICATION_ID