如何在Android中获取应用程序id?

如何在Android中获取应用程序id?,android,Android,我需要唯一标识安装在任何Android设备上的Android应用程序。我知道每个安卓设备都有唯一的id,每个应用程序都像安卓的Linux用户 但在某些情况下,如果两个应用程序使用相同的密钥签名并设计为共享内容,则它们可以具有相同的用户ID 有没有办法为每个android设备上的每个应用程序识别唯一的id?我想根据这个唯一的id广播一些东西,然后应用程序应该收到它并相应地采取行动 我们还可以通过代码获取应用程序id/用户id吗 提前谢谢 干杯, PrateekPackageInfo.sharedU

我需要唯一标识安装在任何Android设备上的Android应用程序。我知道每个安卓设备都有唯一的id,每个应用程序都像安卓的Linux用户

但在某些情况下,如果两个应用程序使用相同的密钥签名并设计为共享内容,则它们可以具有相同的用户ID

有没有办法为每个android设备上的每个应用程序识别唯一的id?我想根据这个唯一的id广播一些东西,然后应用程序应该收到它并相应地采取行动

我们还可以通过代码获取应用程序id/用户id吗

提前谢谢

干杯,
Prateek

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

如果希望两个应用程序具有相同的用户ID,以便它们可以看到彼此的数据并在同一进程中运行,则在清单中为它们分配相同的用户ID:

android:sharedUserId=“app1”
具有相同sharedUserId的两个软件包也需要具有相同的签名。

我认为每个应用程序的软件包名称都是唯一的

是的,我们可以使用以下代码获取设备上安装的每个应用程序的应用程序id。如果您也使用相同的密钥进行签名,则应用程序包名称将不同

ResolveInfo info = mApps.get(position);
  • info.activityInfo.packageName
    将返回唯一的包名
    mApps
    属于
    列表mApps
    类型

  • .get(position)
    将返回项目在列表视图或网格视图中的位置

谢谢,
Md saifudin

我不想在两个不同的应用程序中共享用户id。我想知道的是——即使应用程序共享一个“sharedUserId”,是否有任何方法可以唯一地识别它们?或者通过代码获取该应用程序/用户Id?@Prateek Jain这不是一个正确的语句,不可能安装具有相同包名的第二个apk。