2013-07-13 1 views
9

У меня есть приложение в Google Play, Amazon, Samsung Apps, и я планирую загрузить в другие магазины. Я не хочу компилировать отдельную сборку для каждого магазина. Есть ли способ определить, какое приложение установлено в магазине, если такое же приложение отправлено в разные магазины?Как приложение Android может определить, какой магазин установил его?

ответ

15

Вы должны расширить это для каждого дополнительного магазина, но это должно вам начать

if (PackageManager.getInstallerPackageName().equals("com.android.vending") 
{ 
//do google things 
} 
else if (PackageManager.getInstallerPackageName().equals("com.amazon.venezia") 
{ 
//do amazon things 
} 
+4

Я не нашел это, чтобы быть надежным в прошлом. Я экспериментировал с отправкой getInstallerPackageName при установке на мой веб-сервер с популярным приложением, загруженным на 6 рынков, и 41% даже не были установлены – jamesc

3

Нет, если вы не делаете отдельные сборки. Но с хорошим сценарием maven setup/ant вы можете легко автоматизировать этот процесс.

9

я обнаруживаю Installer, как это внутри MainActivity:

//is installed via amazon, google? 
String installerId = null; 
try { 
    installerId = this.getPackageManager().getInstallerPackageName(this.getPackageName()); 
} catch (Exception e) { 
    //just in case... 
} 

if ("com.amazon.venezia".equals(installerId)) { 
    // amazon 
} else if ("com.android.vending".equals(installerId)) { 
    // google 
} else { 
    // others & unknown ones 
} 

Я испытал это в мое последнее приложение, и он передал приложение в игру googe, магазин amazon и магазин slideme.org

Обновление: look например, есть имя пакета установщика com.google.android.feedback, который, похоже, также относится к хранилищу google, хотя я видел в аналитике google моего теста, что com.android.vending - это далеко более частый. Поэтому, если вы хотите сделать это еще точнее, вам также следует обращаться с этим пакетом установщика. Также обратите внимание, что некоторые рынки (например, slideme.org) просто не устанавливают идентификатор установки пакета вообще.

Смотрите также: Can PackageManager.getInstallerPackageName() tell me that my app was installed from Amazon app store?

 Смежные вопросы

  • Нет связанных вопросов^_^