【问题标题】:Detect app is running on Kindle Fire检测应用程序正在 Kindle Fire 上运行
【发布时间】:2012-01-08 17:24:50
【问题描述】:

有谁知道如何检测应用程序是否在 Kindle Fire 上运行?

如果在 Kindle Fire 上运行,我的应用需要关闭一些功能,并且我想使用与 Google Marketplace 相同的构建版本。

【问题讨论】:

    标签: kindle-fire


    【解决方案1】:

    您可以阅读android.os.Build.MANUFACTURERandroid.os.Build.MODEL。在第一代 Kindle Fire 上,它们分别是“Amazon”和“Kindle Fire”。有关较新 Kindle Fire 设备的型号代码,请参阅亚马逊开发者网站上的 Device and Feature Specifications

    【讨论】:

    【解决方案2】:

    基于亚马逊的Tablet Device Specifications我目前使用这个代码:

    public static boolean isKindleFire() {
        return android.os.Build.MANUFACTURER.equals("Amazon")
                && (android.os.Build.MODEL.equals("Kindle Fire")
                    || android.os.Build.MODEL.startsWith("KF"));
    }
    

    根据该表,制造商字符串始终等于“Amazon”,并且型号字符串对于第一个 2011 型号是“Kindle Fire”,或者对于所有后续型号都以“KF”开头。

    【讨论】:

    • 所以,刚刚有一个应用被亚马逊拒绝,因为它正在启动谷歌应用商店,这取决于这个测试。不幸的是,我没有Build.* 的失败值,但我用equalsIgnoreCase 代替equals 重新提交了表达式的前两部分,并且重新提交通过了。所以现在可能有必要了。
    • @nmr - equalsIgnoreCase 可能不会受到伤害,但我不相信。也许他们在非 Kindle Fire 设备上进行了测试? AFAIK,您几乎可以在任何 Android 设备上安装他们的 App Store。我认为您应该检查是否可以在此测试之外(或代替)使用 Google Play。
    • 是的,谁知道呢,亚马逊并不是一个完美的演员,他们可能已经在非 Kindle 上进行了测试,尽管我相对确定我明确禁止在它们上分发。我真的应该按照你描述的方式来做,但是代码的编写方式需要一些重组来支持。
    • 为什么要检查模型?我想大多数人只需要看看它是否是亚马逊设备,这样他们就可以更改他们的应用程序以不使用任何 Google 服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2012-02-22
    • 2013-06-11
    相关资源
    最近更新 更多