Как распознать во время выполнения, что мы работаем с apk, загруженным с Amazon

У нас есть приложение для Android, которое есть в Google Play и на Android. Мы хотим проверить во время выполнения, была ли игра загружена из Google Play или для Amazon (для покупок в приложении SDK, а также для аналитики). Как мы можем это проверить?


person AJ222    schedule 22.05.2014    source источник
comment
Если у вас разные апки, проверить версию легко. Если apk такой же в двоичном виде, ничего нельзя сделать, чтобы проверить источник загрузки.   -  person Jiang YD    schedule 22.05.2014


Ответы (1)


Вы можете использовать PackageManager.getInstallerPackageName( ), чтобы узнать, из какого магазина было загружено приложение.

Для Google Play он возвращает com.android.vending. Для Amazon он возвращает com.amazon.venezia. Обратите внимание: если вы установите его вручную (то есть через adb), он по умолчанию вернет значение null. Вы можете использовать

adb shell pm install -i com.myappstore com.example.package

Чтобы подделать любой установщик, который вы хотите, для целей тестирования.

person ianhanniballake    schedule 22.05.2014
comment
Вы бы использовали это, чтобы выбрать, использовать ли покупки в приложении Google Play или Amazon SDK? Безопасен ли этот метод? - person AJ222; 22.05.2014
comment
Оба SDK имеют возможность проверять, доступны ли они во время выполнения (путем попытки подключения и неудачной попытки или с помощью определенных методов), так что это потенциально лучший источник правды, но если вы получите любой из упомянутых результатов, вы можете гарантировать, что вы были установлены из этих источников (поскольку никто, кроме Google/Amazon, не может установить эти значения). - person ianhanniballake; 22.05.2014