Android Modules.manufacturer.equals(“Amazon”)不';我不在复习

Android Modules.manufacturer.equals(“Amazon”)不';我不在复习,android,kindle,Android,Kindle,我正在开发一款可以在Nook、Kindle和Google play上运行的应用程序。我试图隐藏一些只用于Kindle设备的按钮。我使用Modules.manufacturer.equals(“Amazon”)处理这种情况,它可以在设备中工作。但当我在kindle商店提交我的应用程序进行审查时,它却没有。每次他们拒绝应用程序,因为那个按钮重定向到谷歌游戏。这对我来说太刺激了。。任何建议 提前感谢。实际上可以为其他设备下载Amazon Appstore应用程序,而不仅仅是Kindle设备,因此解决此

我正在开发一款可以在Nook、Kindle和Google play上运行的应用程序。我试图隐藏一些只用于Kindle设备的按钮。我使用
Modules.manufacturer.equals(“Amazon”)
处理这种情况,它可以在设备中工作。但当我在kindle商店提交我的应用程序进行审查时,它却没有。每次他们拒绝应用程序,因为那个按钮重定向到谷歌游戏。这对我来说太刺激了。。任何建议


提前感谢。

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

Amazon Appstore可在非Kindle设备上使用,这些设备在审查期间使用。因此,您不能依赖
制造商

我知道有三种可能的解决方案,尽管我自己还没有尝试过

检查安装应用程序的市场
PackageManager.getInstallerPackageName()
在谷歌Play Store安装应用程序时返回
com.android.vending
,在亚马逊Appstore安装应用程序时返回
com.amazon.venezia

但是,如果应用程序是侧向加载的,此函数将返回
null
,因此为了完成亚马逊的审查过程,您必须默认假定您正在亚马逊平台上运行

检查应用程序的签名是否已更改 亚马逊重新注册你的应用。您可以检查应用程序的签名是否与您签名时的签名相同,然后采取相应的行动。您可以在中找到如何执行此操作的详细信息(使用
PackageManager.GET_SIGNATURES

只需单独构建
这可能是最可靠的解决方案。

谢谢!。我的主要目标是为这三个市场维护单一的构建或源。任何其他方法都可以做到这一点。我们这样做的方法是有一个根据源代码管理分支更改的配置设置,然后有一个根据该设置进行分支的代码库。还可以检测您的应用程序何时从Amazon Appstore下载。不幸的是,在亚马逊对你的应用程序进行测试时,情况并非如此,因此这没有帮助@Rich你怎么能发现呢?:)@使用
PackageManager.getinstallerPackageName()
使用WaynLue。请看我的回答: