【问题标题】:Android Link to Market from inside another app从另一个应用程序内部链接到市场的 Android
【发布时间】:2014-05-13 14:05:55
【问题描述】:

我正在为 Android 构建许多应用程序,并希望在应用程序中有一个菜单按钮,基本上可以打开我在 Android 市场中的其他应用程序列表。

有没有办法创建一个意图并让 Android 市场弹出并在市场中搜索(我的公司),以便用户可以购买其他应用程序?

伊恩

【问题讨论】:

    标签: android google-play


    【解决方案1】:

    最好使用“market://details”而不是“market://search”:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("market://details?id=com.android.example"));
    startActivity(intent);
    

    然后它直接打开应用程序的详细信息页面。通过搜索,它会显示单个搜索结果,用户必须再次单击才能进入详细信息页面。

    【讨论】:

    • Android Studio 的简化版startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + BuildConfig.APPLICATION_ID)));
    【解决方案2】:

    是的,有一个 documented Intent syntaxhttp://market.android.com/search?q=pub:<Developer Name>market://search?q=pub:<Developer Name>)。

    【讨论】:

    • google play 有更新的链接还是仍然是“市场”
    • @gregm:看起来还是marketdeveloper.android.com/guide/publishing/…
    • @CommonsWare 你知道这是否仍然有效吗?我一直在尝试使用 Play Store 3.7.15 的 Galaxy S 3,如果我包含“pub:”它不起作用,但如果我只是将发布者名称作为查询,它就可以正常工作。我不喜欢那样做,因为其他的东西基本上会出现。
    • @CommonsWare,我怎样才能从 google playstore 以外的地方打开一个应用程序(来自中国,我们有很多应用程序商店)
    【解决方案3】:

    intent action 是 view,uri 是市场 url/uri。

    像这样:

    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:<developer name>") ) );
    

    【讨论】:

      【解决方案4】:

      另一种方法是启动URL Intent,其中包含您的应用程序包名称。 用户将弹出已安装的 Browsers + Play Store 应用列表,他可以在其中查看您的目标应用。

      String appPackageName = "com.example.android";
      String url = "https://play.google.com/store/apps/details?id=" + appPackageName;
      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setData(Uri.parse(url));
      startActivity(intent);
      

      以上代码经过测试,在 Play 商店 4.1.6 版上按预期工作

      【讨论】:

        【解决方案5】:

        在我的真实设备 Sony Xperia Pro 和 PocketBook 平板电脑上,即使您放置了一个链接以播放网上商店,例如https://play.google.com/store/apps/details?id=com.estrongs.android.pop 它会询问您是要在默认浏览器中还是在 Play 市场中打开它。 如果您选择 Play market - 应用程序将按预期显示。 没有故意测试它,用 TextView 的 Autolink 测试。

        【讨论】:

          【解决方案6】:
          @Override
          public boolean onOptionsItemSelected(MenuItem item) {
               switch(item.getItemId()) {
                   case R.id.adfree:
                       final String appPackageName = "com.zooohooo.noads"; // Can also use getPackageName(), as below
                       startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
                       return true;
                   case R.id.rate:
                       startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName())));
                       return true;
               }
               return super.onOptionsItemSelected(item);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-03
            • 2011-09-30
            • 1970-01-01
            • 2013-10-31
            • 2011-02-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多