Найти тему

Как программно определить из какого источника было установлено android приложение на смартфон?

Контекст задачи: хочу объединить две платежные системы от RuStore и Google Play так чтобы нужная активировалась в зависимости от того откуда было установлено приложение. Если из RuStore значит активируется платежка с поддержкой СБП и платежами в России, а если загружено из GP - значит их платежка и будет работать.
Да! Было бы круче подгружать нужный платежный модуль в зависимости от наличия или отсутствия RuStore, но пока так.

Для определения источника установки Android-приложения на смартфон можно использовать ряд методов. Один из способов - использовать пакетный менеджер (PackageManager) в Android для получения информации о приложении. Вот пример кода на Java, который позволяет получить источник установки приложения:

PackageManager packageManager = getPackageManager();
String installerPackageName = packageManager.getInstallerPackageName(getPackageName());

if (installerPackageName != null) {
if (installerPackageName.equals("com.android.vending")) {
// Приложение было установлено из Google Play Store
} else {
// Приложение было установлено из другого источника
}
} else {
// Не удалось определить источник установки
}

В этом примере мы используем метод getInstallerPackageName(), чтобы получить пакетное имя установщика приложения. Если значение равно "com.android.vending", то приложение было установлено из Google Play Store. В противном случае, оно было установлено из другого источника.

Обратите внимание, что этот метод может не всегда быть надежным, так как некоторые сторонние магазины приложений могут изменять значение пакетного имени установщика.