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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在没有选择意图的情况下直接打开Goog le Play商店应用[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想直接从我的应用中打开Goog​​le 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);

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

我不想要这个如何避免Chooser盒并直接打开Play商店?

更新 :

通过使用此问题解决了此问题:

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商店的主页面,但是我想让它重定向到我发送的包名称的特定应用程序。谁能帮我这个。

总是感谢帮助。

答案

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

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)));
     }
另一答案

如果我找到你,你正在寻找这个。

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)));
}

试试这个

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

Delphi XE4或XE5:如何以弹出格式打开Goog le Chrome?

如何在模态对话框中键盘导航到reCAPTCHA?

如何在没有消息的情况下发送电子邮件意图?

如何在没有存在意图的情况下创建转储命令

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

在没有新意图的情况下,我应该如何从通知返回到活动