15

我最近被亚马逊移动应用分发门户拒绝了我的应用,理由是 Menu->“Rate the App”选项重定向到 Google Play 商店。

为了被接受,它应该重定向到亚马逊应用商店,下载 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";

问题是:如何区分应用程序是在 Kindle Fire 上运行还是在“原生”Android 系统上运行?

4

7 回答 7

27

你可以阅读这些:

android.os.Build.MANUFACTURER 
android.os.Build.MODEL

在 Kindle Fire 上,这些返回值“Amazon”和“Kindle Fire”。

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

这应该足以让您的应用确定它在 Kindle Fire 上运行。


更新:

以上适用于第一代 Kindle Fire。

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

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

于 2012-07-11T21:15:07.487 回答
6

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

较旧的应用程序仍会返回null,我还没有真正验证 API 或安装新商店然后升级旧应用程序是否会设置安装程序。但是安装一个新的应用程序并检查/data/system/packages.xml是否installer正确设置。

于 2013-05-31T17:31:40.043 回答
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的图表底部

于 2012-09-18T01:38:30.300 回答
4

检测 Kindle Fire 是解决方案的一部分,但不是整个解决方案。该线程中的(当前)最后一篇文章似乎触及了“这是从亚马逊商店安装的”的核心——这很可能是 Kindle Fire,也可能不是!

<剪辑,稍作编辑>

确定应用程序是否在生产模式下通过 Appstore 安装的正确方法是使用onSdkAvailable(boolean isSandboxMode)方法。

onSdkAvailable(boolean isSandboxMode) 方法的文档。抽象的:

  • 一旦您PurchasingObserverPurchasingManager
  • 此方法告诉您采购框架是在沙盒模式下运行测试数据,还是在生产模式下运行真实数据
  • 如果您的应用是通过亚马逊客户端下载的,isSandboxMode将返回 false
  • 初始化方法应该在onStart()生命周期方法中调用

在注册您的PurchaseObserver时,您会收到一个异步回调,onSdkAvailable(Boolean isSanboxMode). 如果应用程序是通过亚马逊客户端下载的,那么isSandboxMode将始终返回 false。此代码将在生产模式下成功运行,但在开发/测试环境中,isSandboxMode 将始终返回 true,因为在测试环境中未通过 Amazon 客户端下载应用程序。

于 2012-10-16T02:14:44.687 回答
3

我只会创建 2 个应用程序。一款适用于安卓。一个用于 Kindle。

于 2012-07-11T21:15:32.577 回答
0

您可以包含一个指向一般网页的链接,然后该网页可以将流量重定向到 Amazon AppStore 或 Google Play。

例如,您可以包含链接 www.yourwebsite.com/getapp,然后将流量重定向到 Google Play 或 Amazon。

亚马逊不太可能接受 Google Play 链接,即使背后有逻辑。

于 2014-06-22T01:29:50.813 回答
0

实际上,您可以完全跳过检查,只需链接到 market://details?id=packagename

于 2015-10-21T10:25:14.350 回答