У нас есть приложение для Android, которое есть в Google Play и на Android. Мы хотим проверить во время выполнения, была ли игра загружена из Google Play или для Amazon (для покупок в приложении SDK, а также для аналитики). Как мы можем это проверить?
Как распознать во время выполнения, что мы работаем с apk, загруженным с Amazon
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
Вы бы использовали это, чтобы выбрать, использовать ли покупки в приложении Google Play или Amazon SDK? Безопасен ли этот метод?
- person AJ222; 22.05.2014
Оба SDK имеют возможность проверять, доступны ли они во время выполнения (путем попытки подключения и неудачной попытки или с помощью определенных методов), так что это потенциально лучший источник правды, но если вы получите любой из упомянутых результатов, вы можете гарантировать, что вы были установлены из этих источников (поскольку никто, кроме Google/Amazon, не может установить эти значения).
- person ianhanniballake; 22.05.2014