Вопрос:
Мне нужно однозначно идентифицировать Android-приложение, установленное на любом устройстве Android. Я знаю, что у каждого Android-устройства есть уникальный идентификатор, и каждое приложение похоже на пользователя Linux для Android.
Но бывают случаи, когда два приложения могут иметь одинаковый идентификатор пользователя, если они подписаны с одним и тем же ключом и предназначены для совместного использования контента.
Есть ли способ идентифицировать уникальный идентификатор для каждого приложения на каждом устройстве Android? Я хочу транслировать что-то на основе этого уникального идентификатора, а затем приложение должно получить это и действовать соответствующим образом.
Можно ли также получить идентификатор id/пользователя приложения через код?
Спасибо заранее!
Cheers,
Пратеек
Лучший ответ:
Я считаю, что имя пакета уникально для каждого приложения
Ответ №1
Да, мы можем получить идентификатор приложения для каждого приложения, установленного на устройстве, используя следующий код. И если вы подписываете один и тот же ключ, имя пакета приложения будет другим.
ResolveInfo info = mApps.get(position);
-
info.activityInfo.packageName вернет уникальное имя пакета. mApps имеет тип List<ResolveInfo> mApps.
-
.get(position) вернет позицию позиции в виде списка или сетке.
Спасибо,
Md Saifuddin
Ответ №2
В поле PackageInfo.sharedUserId будет отображаться идентификатор пользователя, назначенный в манифесте.
Если вы хотите, чтобы два приложения имели один и тот же идентификатор пользователя, чтобы они могли видеть данные друг друга и запускаться в одном процессе, затем назначьте им один и тот же идентификатор пользователя в манифесте:
Android: sharedUserId = “app1”
Два пакета с одинаковым sharedUserId также должны иметь одну и ту же подпись.