Modules.manufacturer.equals( "Amazon" ) 在评论中不起作用



我想要一个可以在Nook、Kindle和Google play中运行的应用程序。我正试图隐藏一些只适用于Kindle设备的按钮。对于这种情况,我使用Modules.manufacturer.equals("Amazon"),它在设备中工作。但当我在kindle商店提交我的应用程序以供审查时,它并没有。每次他们都会因为该按钮重定向到谷歌播放而拒绝该应用程序。这对我来说太棒了…有什么建议吗。

提前感谢。

实际上可以为其他设备下载亚马逊应用商店应用程序,而不仅仅是Kindle设备,所以解决这个问题的唯一方法是为亚马逊应用商店与谷歌Play提交不同的二进制文件。

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

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

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

当应用程序由Google的Play Store安装时,PackageManager.getInstallerPackageName()返回com.android.vending,当应用程序从Amazon应用商店安装时,返回com.amazon.venezia

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

检查应用程序的签名是否已更改

亚马逊重新注册您的应用程序。您可以检查应用程序的签名是否与您签名时的签名相同,然后采取相应行动。您可以在Jakar的回答中找到如何做到这一点(使用PackageManager.GET_SIGNATURES)的详细信息。

只需单独构建

这可能是最稳健的解决方案。

最新更新