如何在没有选择器意图的情况下直接打开 Google Play 商店应用程序 [重复]

Posted

技术标签:

【中文标题】如何在没有选择器意图的情况下直接打开 Google Play 商店应用程序 [重复]【英文标题】:How to open Google play store app directly without chooser intent [duplicate] 【发布时间】:2015-01-17 21:47:45 【问题描述】:

我想直接从我的应用打开 Google Play 商店。

这就是我现在正在做的事情。

try 
  // Check whether Google Play store is installed or not:
  this.getPackageManager().getPackageInfo(
                            "com.android.vending", 0);

  url = "market://details?id=" + packageName;
 catch (final Exception e) 
  url = "https://play.google.com/store/apps/details?id="
                            + packageName;


// Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);

但问题是它在应用程序选择框中显示了其他应用程序。

我不想要这个如何避免选择框并直接打开游戏商店?

更新:

使用这个解决了这个问题:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://search?q=foo"));
PackageManager pm = getActivity().getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
for (int a = 0; a < list.size(); a++) 
  ResolveInfo info = list.get(a);

  ActivityInfo activity = info.activityInfo;
  if (activity.name.contains("com.google.android")) 
    ComponentName name = new ComponentName(
                                activity.applicationInfo.packageName,
                                activity.name);
    Intent i = new Intent(Intent.ACTION_MAIN,
                                Uri.parse("http://play.google.com/store/apps/details?id="
                                        + packageName));

    i.addCategory(Intent.CATEGORY_LAUNCHER);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
               | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    i.setComponent(name);
    startActivity(i);
    getActivity().finish();
  


但现在的问题是它打开了 Play 商店的主页,但我希望它重定向到我要发送其包名的特定应用程序。谁能帮我解决这个问题。

我们总是感谢您的帮助。

【问题讨论】:

它显示了哪些额外的应用程序? 检查这个链接,我很确定你可以像这样设置你的意图,但是对于 Action_View,我不确定虽然从未尝试过 ***.com/questions/26625505/restricting-share-options/… 在意图中传递谷歌商店包名称(在我不知道的地方找到),它将启动谷歌商店 【参考方案1】:

使用此代码...它适用于我

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
 try 
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
     
       catch (android.content.ActivityNotFoundException anfe) 
       startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
     

【讨论】:

包不可用怎么办?它只会显示一个空白的错误页面... 简单明了的例子,干杯队友:) 将网址更改为https:// 这不适用于 Android Pie 版本。 适用于 android 12,所以不确定 2 年前与 @VijayPatole 和 Pie 的交易是什么。【参考方案2】:

如果我没听错,你正在寻找这个。

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity  object
try 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
 catch (android.content.ActivityNotFoundException anfe) 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));

试试这个

【讨论】:

将网址更改为https://

以上是关于如何在没有选择器意图的情况下直接打开 Google Play 商店应用程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何仅从 Google Photos 应用程序中选择图像? Android 谷歌照片意图

使用线程获取图像资源时,意图选择器保持打开状态

如何选择特定的应用程序来处理意图

在不显示选择器的情况下启动 Native Camera

Android如何根据选择器意图中的用户操作请求权限

如何安装 google play