0

我希望名为“更多应用程序”的按钮访问我在 Play 商店中的应用程序列表。这是页面链接:

https://play.google.com/store/apps/developer?id=Jouni

??

4

2 回答 2

6

启动 Google Play 商店可与某些市场 URI 一起正常工作:

        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(<market_uri>));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_ANIMATION);

        startActivity(intent);

uris 可以在哪里

  • 市场://详情?id=
  • 市场://搜索?q=pub:

但是当您想在欢迎页面上启动它时它不起作用,即当您只想启动 Google Play 商店而不指定应用程序 ID 或执行查询时。

所以我想出了这个解决方案,它也可以处理任何应用程序无法处理“market://”uris 的情况。在这种情况下,使用 Web 浏览器作为备用。

这个解决方案不是最好的,但它可以完成工作。

public void launchPlayStore()
{
    // look for intent able to process 'market://' uris
    Intent market = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=dummy"));

    PackageManager packageManager = getPackageManager();

    ComponentName playStoreComponentName=null;

    for(ResolveInfo resolveInfo : packageManager.queryIntentActivities(market, 0))
    {
        ActivityInfo activityInfo = resolveInfo.activityInfo;

        String packageName = activityInfo.applicationInfo.packageName;

        // lokking for "com.android.vending", "com.google.android.finsky.activities.MainActivity"
        if (!packageName.contains("android"))// || !activityInfo.name.contains("android"))
            continue;

        // appname should be 'Play Store'
        // String appName = resolveInfo.loadLabel(packageManager).toString();
        playStoreComponentName =  new ComponentName(packageName, activityInfo.name);
        break;
    }

    if(playStoreComponentName!=null)
    {
        Intent intent = new Intent();
        intent.setComponent(playStoreComponentName);
        intent.setData(Uri.parse("market://"));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_ANIMATION);

        // launch Google Play Store app :-)
        startActivity(intent);
    }
    else
    {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("https://play.google.com/"));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_ANIMATION);

        // fallback -> web browser
        startActivity(intent);
    }
}
于 2012-12-13T13:47:43.017 回答
1

在您的按钮 OnClick 中执行此操作

String url = "https://play.google.com/store/apps/developer?id=Jouni";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
于 2012-11-17T18:12:32.323 回答