将用户重定向到Android应用商店

6

众所周知,我们可以按照以下链接所述发送意图,然后它会将用户重定向到Google Play。

Uri marketUri = Uri.parse("market://details?id=" + packageName);
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
startActivity(marketIntent);

但问题在于所有应用商店,尤其是亚马逊应用商店(在Kindle上),是否也能处理此意图?
我知道以下URI必须将用户重定向到亚马逊应用商店:

http://www.amazon.com/gp/mas/dl/android?p=package

但是,我不想有两个二进制文件,一个用于普通的安卓系统,另一个用于亚马逊。


你不能检测设备并根据设备使用相应的 URL 吗? - Anirudh Ramanathan
是的,但我认为这不是一个好的解决方案。实际上,不仅有Google Play和Amazon应用商店,在中国的Android手机/平板电脑上还有许多应用商店。而且我无法处理所有设备... 顺便说一下,我知道我可以获取制造商,但我不知道亚马逊设备返回的确切字符串,因为我手头没有设备。 - Bear
2
找到设备的方法 -> https://dev59.com/Bmsy5IYBdhLWcg3wzBJ4 - Anirudh Ramanathan
1
亚马逊应用商店可以安装在所有设备上,而不仅仅是Kindle。仅通过设备检测是不够的,您必须在应用程序中添加一些标志,以通知应用程序来自何处。 - Ran
1
即使存在亚马逊应用商店,如果有Google Play,将用户重定向到Google Play也是可以的。 - Bear
显示剩余2条评论
1个回答

3

这里没有通用的方法,需要在你的代码中设置一些标志。

因此,你可以像这样:

boolean AMAZON_APK=true;
boolean ANDROID_APK =false;
....

当你想发布到Amazon市场或Android Play市场时,需要设置适当的数值。在你的代码中,在推出市场之前,你需要通过一系列if语句检查标志位,并根据特定市场支持的内容启动适当的意图。这并不是什么大问题,因为你只需要改变很少几个变量。

if(AMAZON_APK)
  //launch amazon intent
if(ANDROID_APK)
  //launch android market intent
....

你可以在这里查看更完整的示例。如果有一些市场不支持任何市场意图,你可以启动一个链接到移动网站,并从那里引导用户到你的应用程序。此外,如何使用Intent搜索Amazon App Store并通过开发者名称进行筛选?


正如我之前提到的,我不想有两个独立的二进制文件。我想知道的是,亚马逊设备是否能够识别我上面提到的意图。我知道它被亚马逊应用商店禁止,但我不在乎,因为我没有计划上传到他们的应用商店。我只是想确保它在亚马逊设备上真的可以工作。 - Bear
虽然我不能确认Kindle对于市场意图的处理方式,但是一种不需要发布单独二进制文件的方法是使用PackageManager来查看Play商店是否已安装,然后启动Android意图,如果没有检查Amazon是否已安装,如果两者都不存在,则使用您所知道的网站或任何其他“商店”应用程序。请参阅此处有关使用包管理器检查已安装应用程序的信息:https://dev59.com/NWw15IYBdhLWcg3wSJzQ - mbwasi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接