Определите, было ли загружено приложение Android из Google Play против Amazon против других
Я знаю, что это, вероятно, длинный снимок, но есть ли способ программно определить, размещалось ли приложение в магазине приложений Amazon по сравнению с Google Play? Я хотел бы сослаться на магазин приложений, из которого было загружено приложение, и я бы предпочел не иметь двух разных APK с этой разницей, если ее можно избежать.
2 ответа
Совсем недавно Amazon Appstore возвращает вменяемые значения для PackageManager.getInstallerPackageName()
PackageManager pm = context.getPackageManager();
String installerPackageName = pm.getInstallerPackageName(context.getPackageName());
if ("com.android.vending".equals(installerPackageName)) {
//do google things
} else if ("com.amazon.venezia".equals(installerPackageName)) {
//do amazon things
}
Смотрите здесь: https://forums.developer.amazon.com/forums/thread.jspa?threadID=680
Примеры для оценки этого приложения ссылки:
Гугл игры-
Рынок: // Детали ID = PACKAGANAME
Amazon Store
или же
AMZN: // приложение / андроид р =com.amazon.mp3
Самый простой способ - использовать разные коды версий или имена между Amazon и Google Play. Затем вы можете использовать PackageManager.getPackageInfo, чтобы получить эти значения и соответствующим образом выбрать ссылку на магазин приложений.
Пример: добавьте суффикс всех имен версий Amazon к ".65", то есть 1.0.65. Тогда используйте
public boolean isAmazon(Context context) {
String versionName = "";
try {
versionName = context.getPackageManager().getPackageInfo(
getPackageName(), 0).versionName;
} catch (NameNotFoundException e) {
// Can't find itself...
}
return versionName.endsWith(".65");
}