Мне нужно обнаружить, что мое приложение установлено из игры Google или другого рынка, как я могу получить эту информацию?
Как узнать, что приложение установлено из игры Google или боковой загрузки?
Ответ 1
Класс PackageManager
предоставляет метод getInstallerPackageName, который укажет вам имя пакета для любого установленного вами пакета. Боковые приложения не будут содержать значения.
EDIT. Обратите внимание @mttmllns ниже в отношении магазина приложений Amazon.
Ответ 2
И FYI очевидно, последняя версия магазина Amazon наконец устанавливает PackageManager.getInstallerPackageName()
до "com.amazon.venezia"
, а также в отличие от Google Play "com.android.vending"
.
Ответ 3
Я использую этот код для проверки, если сборка была загружена из магазина или загружена:
public static boolean isStoreVersion(Context context) {
boolean result = false;
try {
String installer = context.getPackageManager()
.getInstallerPackageName(context.getPackageName());
result = !TextUtils.isEmpty(installer);
} catch (Throwable e) {
}
return result;
}
Ответ 4
Я нашел возможным указать InstallerPackageName, установив APK с помощью команды: pm install -i INSTALLERPACKAGENAME. Есть ли способ определения установленного вручную InstallerPackageName?
Ответ 5
Если вы смотрите на выявление и ограничение загруженного приложения. Google придумала решение для выявления проблемы.
Вы можете следовать как ниже
Проект build.gradle
:
buildscript {
dependencies {
classpath 'com.android.tools.build:bundletool:0.9.0'
}
}
Модуль приложения build.gradle
:
implementation 'com.google.android.play:core:1.6.1'
Класс, расширяющий приложение:
public void onCreate() {
if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {
// Skip app initialization.
return;
}
super.onCreate();
.....
}
Благодаря этой интеграции Google автоматически определит, есть ли пропавшие разделенные файлы, и покажет всплывающее окно с сообщением " Установка не удалась ", а также перенаправит на экран загрузки Play store, где пользователь сможет правильно установить приложение через магазин Google Play.
Проверьте эту ссылку для получения дополнительной информации.
Надеюсь это поможет.