我知道这可能是一个远景,但有没有办法以编程方式检测应用程序是否托管在亚马逊应用商店和Google Play上?我想链接到从应用程序下载的应用程序商店,如果可以避免,我宁愿没有两个不同的APK,只有这个区别。
答案 0 :(得分:23)
就在最近,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
此应用关联率的示例:
Google Play -
市场://细节ID = PACKAGANAME
亚马逊商店
或
AMZN://应用/机器人P = com.amazon.mp3
答案 1 :(得分:1)
最简单的方法是在亚马逊和Google Play之间使用不同的版本代码或名称。然后,您可以使用PackageManager.getPackageInfo检索这些值,并从那里选择适当的应用商店链接。
示例:将所有亚马逊版本名称后缀为“.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");
}