我需要唯一识别安装在任何Android设备上的Android应用。我知道每个Android设备都有唯一的ID,每个应用程序都像Android的Linux用户。
但有些情况下,如果两个应用程序使用相同的密钥签名并且旨在共享内容,则它们可以具有相同的用户ID。
有没有办法为每个Android设备上的每个应用程序识别唯一ID?我想根据这个唯一的ID广播一些内容,然后应用程序应该收到它并采取相应的行动。
我们还可以通过代码获取应用程序ID /用户ID吗?
提前致谢!!
干杯, Prateek
答案 0 :(得分:3)
我认为软件包名称对于每个应用程序都是唯一的
答案 1 :(得分:2)
是的,我们可以使用以下代码获取设备上安装的每个应用程序的应用程序ID。如果您也使用相同的密钥签名,则应用程序包名称将不同。
ResolveInfo info = mApps.get(position);
info.activityInfo.packageName
将返回唯一的包名称。 mApps
的类型为List<ResolveInfo> mApps
。
.get(position)
将在列表视图或网格视图中返回项目的位置。
谢谢, Md Saifuddin
答案 2 :(得分:1)
PackageInfo.sharedUserId字段将显示清单中分配的用户ID。
如果您希望两个应用程序具有相同的userId,那么他们可以看到彼此的数据并在同一个进程中运行,然后在清单中为它们分配相同的userId:
机器人:sharedUserId = “APP1” 具有相同sharedUserId的两个包也需要具有相同的签名。