我在谷歌播放,亚马逊,三星应用程序中有应用程序,我打算上传到其他商店。 我不希望为每个商店编译单独的构建。 如果相同的应用程序提交到不同的商店,有没有办法检测商店安装的应用程序?
答案 0 :(得分:15)
您必须为每个额外的商店扩展此功能,但这应该可以帮助您开始
if (PackageManager.getInstallerPackageName().equals("com.android.vending")
{
//do google things
}
else if (PackageManager.getInstallerPackageName().equals("com.amazon.venezia")
{
//do amazon things
}
答案 1 :(得分:11)
我在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 play,amazon store和slideme.org商店中通过了应用程序提交
更新:看起来有时会出现安装程序包名称 com.google.android.feedback ,这似乎与谷歌商店有关,虽然我已经看到了在我的测试应用程序的谷歌分析中, com.android.vending 更频繁。因此,如果您想要使其更加精确,您也应该处理此安装程序包。 另请注意,某些市场(如slideme.org)似乎根本没有设置软件包安装程序ID。
答案 2 :(得分:3)
除非您进行单独的构建。但是使用好的maven设置/ ant脚本,您可以轻松地自动完成此过程。