Google suggests链接到Google Play商店的方法是:

  • market://details?id=<package_name>(如果您在应用程序中),
  • http://play.google.com/store/apps/details?id=<package_name>如果
    您正在浏览网页。

  • 当我们遵循这种策略时,即使Google Play商店中有我们正在寻找的应用,我们仍然敬酒“找不到此类应用”。

    事实证明,这是由两个市场服务商的竞争引起的:F-droid(开源市场)和Google Play商店。通过查看intent resolvers的软件包管理器,我发现有多个。

    我只希望我的应用程序链接到Google Play商店中的应用程序。
    有没有办法强制该应用程序响应我的market://[...]链接?

    Other strategies建议尝试一种方法,如果失败,则尝试http://[...]链接。 (链接的解决方案对我来说失败了,因为没有抛出异常。)

    如果我总是通过http://方法链接,会出什么问题?即,跳过market://链接,然后直接在应用程序中使用http://。这个决定以后会再次困扰我吗?

    最佳答案



    不,您正在尝试使用Uri ACTION_VIEW打开Intent。原则上,欢迎用户使用所需的任何内容处理该请求,就像他们可以使用所需的任何应用程序打开PDF一样。这是Android中为数不多的几个地方之一,我认为尝试强制该问题并将用户引导到特定的应用程序,并远离他们通常选择的位置是有道理的。



    如果您是为此startActivity()调用Uri的人,则可以将Intent包装在Intent.createChooser()中。如果存在多个与Intent匹配的 Activity ,这将迫使选择器对话框出现,避免使用默认对话框。这是最安全,最稳定的方法,因为它不依赖于Play商店本身的任何细节。

    您可以在setComponent()上调用Intent并提供理论上指向所需 Activity 的ComponentName。这就是Google摆脱困境的重构。

    您可以尝试查看setPackage()是否将Intent分辨率限制为所需的应用程序。再一次,如果Google决定切换到其他包作为其进入Play商店的入口点,那么您将不得不适应。而且我不确定setPackage()在这种情况下是否受到尊重。



    是的,因为您的问题不是没有匹配项,而是有多个匹配项,所以做出了另一个选择而不是您想要的选择。



    就其他的应用程序(例如Web浏览器)而言,这并不能真正解决您的问题。

    关于android - 多个市场处理程序导致找不到应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24335244/

    10-13 04:17
    查看更多