【发布时间】:2013-02-27 05:23:50
【问题描述】:
我知道这可能是一个远景,但是有没有办法以编程方式检测应用程序是托管在亚马逊应用商店还是托管在 Google Play 上?我想链接到下载该应用程序的应用商店,如果可以避免的话,我宁愿不要有两个不同的 APK,只有这种差异。
【问题讨论】:
-
从亚马逊加载的应用程序是否从那里获取更新............?
标签: android google-play amazon-appstore
我知道这可能是一个远景,但是有没有办法以编程方式检测应用程序是托管在亚马逊应用商店还是托管在 Google Play 上?我想链接到下载该应用程序的应用商店,如果可以避免的话,我宁愿不要有两个不同的 APK,只有这种差异。
【问题讨论】:
标签: android google-play 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-
market://details?id=PACKAGANAME
亚马逊商店
或
amzn://apps/android?p=com.amazon.mp3
【讨论】:
最简单的方法是在 Amazon 和 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");
}
【讨论】: