【问题标题】:Modules.manufacturer.equals("Amazon") doesn't work in ReviewModules.manufacturer.equals("Amazon") 在 Review 中不起作用
【发布时间】:2013-07-03 06:36:55
【问题描述】:

我知道一个可以在 Nook、Kindle 和 Google play 中运行的应用程序。我试图隐藏一些仅适用于 Kindle 设备的按钮。我在这种情况下使用Modules.manufacturer.equals("Amazon"),它适用于设备。但是当我在kindle商店提交我的应用程序以供审核时,它没有。每次他们拒绝该应用程序时,因为该按钮重定向到谷歌播放。它对我来说是如此有线..任何建议。

提前致谢。

【问题讨论】:

    标签: android kindle


    【解决方案1】:

    实际上可以为其他设备下载 Amazon Appstore 应用程序,而不仅仅是 Kindle 设备,因此修复它的唯一方法是为 Amazon Appstore 和 Google Play 提交不同的二进制文件。

    【讨论】:

    • 谢谢!。我的主要目标是为三个市场维护一个单一的构建或来源。任何其他方式来做到这一点。
    • 我们这样做的方式是有一个根据源代码控制分支更改的配置设置,然后有一个代码库根据该设置进行分支。
    • 还可以检测您的应用何时从亚马逊应用商店下载。不幸的是,在亚马逊测试您的应用程序期间不会出现这种情况,所以这无济于事!
    • @Rich 你怎么能检测到呢? :)
    • @WaynnLue 与PackageManager.getinstallerPackageName()。看我的回答:stackoverflow.com/a/20524255/328936
    【解决方案2】:

    亚马逊应用商店可在非 Kindle 设备上使用,并且此类设备在审核期间使用。因此,您不能依赖manufacturer

    我知道有三种可能的解决方案,虽然我自己还没有真正尝试过其中任何一种。

    检查应用是从哪个市场安装的

    PackageManager.getInstallerPackageName() 在通过 Google 的 Play 商店安装应用时返回 com.android.vending,在从亚马逊应用商店安装应用时返回 com.amazon.venezia

    但是,如果应用程序被侧载,此函数将返回null,因此为了通过亚马逊的审核流程,您必须默认假定您在亚马逊平台上运行。

    检查应用的签名是否改变

    亚马逊重新签名您的应用。您可以检查您的应用程序的签名是否与您签署时的签名相同,然后采取相应措施。您可以在 Jakar's answer, here 中找到有关如何执行此操作的详细信息(使用 PackageManager.GET_SIGNATURES)。

    只做单独的构建

    这可能是最可靠的解决方案。

    【讨论】:

      猜你喜欢
      • 2017-07-20
      • 2018-02-21
      • 2014-09-29
      • 2019-02-24
      • 1970-01-01
      • 2013-04-04
      • 2017-06-04
      • 2018-05-10
      • 1970-01-01
      相关资源
      最近更新 更多