如何区分Android应用程序是否在亚马逊Kindle Fire上运行?

Ily*_*nko 15 android kindle-fire

我最近从亚马逊移动应用程序分发门户网站拒绝了我的应用程序,其中包含菜单 - >"评估应用程序"选项重定向到Google Play商店.

为了被接受,它应该重定向到Amazon Appstore,下载URL必须是http://www.amazon.com/gp/mas/dl/android?p=packagename,这当然是有意义的.

所以我需要这样的东西:

String url = isKindle 
    ? "http://www.amazon.com/gp/mas/dl/android?p=packagename" 
    : "https://play.google.com/store/apps/details?id=packagename";
Run Code Online (Sandbox Code Playgroud)

问题是:我如何区分应用程序是在Kindle Fire上还是在"本机"Android系统上运行?

spe*_*593 27

你可以阅读这些:

android.os.Build.MANUFACTURER 
android.os.Build.MODEL
Run Code Online (Sandbox Code Playgroud)

在Kindle Fire上,这些值会返回'亚马逊'和'Kindle Fire'的值.

http://developer.android.com/reference/android/os/Build.html

这应该足以让您的应用程序确定它是在Kindle Fire上运行的.


更新:

以前的作品为1代Kindle Fire.

较新型号的Kindle Fire具有不同的android.os.Build.MODEL值.

https://developer.amazon.com/sdk/fire/specifications.html


mtt*_*lns 6

好消息!显然,亚马逊商店的最新版本终于将PackageManager.getInstallerPackageName()"com.amazon.venezia"与谷歌Play的对比"com.android.vending".

较旧的应用程序仍将返回null,我实际上没有验证API或是否安装新的Store然后升级旧的应用程序将设置安装程序.但是正确设置了安装新应用程序和检查/data/system/packages.xml指示installer.


Nic*_*ury 5

请务必更新Build.MODEL检查以处理新的Kindle Fire设备.

  • KFOT = Kindle Fire
  • KFTT = Kindle Fire HD 7"
  • KFJWI = Kindle Fire HD 8.9"Wi-Fi
  • KFJWA = Kindle Fire HD 8.9"WAN

它们列在图表底部,网址https://developer.amazon.com/sdk/fire/specifications.html