启动Android市场的应用程序

9

我正在为Android应用程序开发一个简化版。如何启动一个Intent来打开Android市场,最好是显示我的应用程序的完整版本?这在模拟器上很难测试(这是我拥有的最接近设备的东西),因为似乎没有合法的方法在模拟器上安装市场。

3个回答

30

那个查询语句是有效的,但在我尝试时,它似乎是基于名称带出了搜索结果。

如果你使用类似以下的内容

intent.setData(Uri.parse("market://details?id=com.wolinlabs.SuperScorepad")); 

相反,它会直接跳转到您应用程序的Android市场页面。

我认为这更符合您的要求(?)


非常感谢你的帮助,我想知道开发者是否有打开更多应用程序的URL???URL URL打开应用程序。有一个选项可以查看更多应用程序。我想要那个URL.. :) - Nikhil Aneja
是的,有的,它在发布指南链接中有描述。使用此代码:**market://search?q=pub:<publisher_name>**。 - Anton Cherkashyn
这个在同一个应用程序的视图中打开市场,如果想要真正单独地打开市场,请看我的回答。 - code4jhon

23

最终找到了答案:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("market://search?q=pname:MyApp")); 
startActivity(intent);

然而,在模拟器上没有测试的方法。


有没有任何标志可以设置到意图中,以防止 Google Play 显示我的应用程序的打开按钮。http://stackoverflow.com/questions/10185326/opening-my-application-from-google-play-app-crashes-on-exit/10185486#10185486 http://stackoverflow.com/questions/10174892/extended-application-class-force-close-on-restart-android#comment13073329_10174892 - Mahendran
这个只是在同一个应用程序的视图中打开市场,要真正单独地打开市场,请查看我的答案。 - code4jhon
开发者怎么样?如何为所有应用程序打开开发者名称? - Pratik Butani

1

你好,我尝试着做同样的事情,但有一个小区别:

我不想在我的应用程序中嵌入它。

public void start(JSONArray args, CallbackContext callback) {

    Intent launchIntent;
    String packageName;
    String activity;
    String uri;
    ComponentName comp;

    try {
        packageName = args.getString(0); //com.android.vending
        activity    = args.getString(1); //com.google.android.finsky.activities.LaunchUrlHandlerActivity
        uri         = args.getString(2); //'market://details?id=com.triplingo.enterprise'

        launchIntent = this.cordova.getActivity().getPackageManager().getLaunchIntentForPackage(packageName);
        comp = new ComponentName(packageName, activity);
        launchIntent.setComponent(comp);
        launchIntent.setData(Uri.parse(uri));

        this.cordova.getActivity().startActivity(launchIntent);
        callback.success();
    } catch (Exception e) {
        callback.error(e.toString());
    }
}

这里的主要区别在于你可以启动一个新应用程序,而不仅仅是在你的应用程序中显示Google Play。
这段代码是Cordova插件的一部分,但很明显你需要做些什么才能在本地使用它。
重要的行:
launchIntent = this.cordova.getActivity().getPackageManager().getLaunchIntentForPackage(packageName);
comp = new ComponentName(packageName, activity);
launchIntent.setComponent(comp);
launchIntent.setData(Uri.parse(uri));

致敬


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接