2009-12-27 88 views
9

我正在开发Android上应用程序的精简版。如何启动一个意图打开Android电子市场,最好显示我的应用程序的完整版本?这很难在模拟器上测试(这与我的设备最接近),因为似乎没有合法的方法来安装市场。到底从应用程序启动Android电子市场

回答

23

找到答案:

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

模拟器上测试没办法,虽然。

+0

是,我可以设置为任何意向标志,防止谷歌发挥出我的应用程序打开按钮。 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 – 2012-04-20 13:10:37

+0

这个以同一应用程序开启市场,要真正打开市场,分开看我的答案。 – 2014-07-29 02:59:07

+0

Developer呢?如何打开所有应用程序的开发人员名字? – 2014-09-14 13:09:30

29

上面的查询工作正常,但是当我尝试它时,它看起来像是在根据名称提出搜索结果。

如果你使用类似

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

相反,它会右转到Android Market页面为您的应用程序。

我认为这更多你想要的(?)

+0

非常感谢这位朋友..我想知道如果有Url来开发更多的应用程序? Url Url打开应用程序..有一个选项可以看到更多的应用程序..我想要的URL .. :) – 2012-04-01 13:06:15

+0

是的,有,它在发布指南[链接](http://开发人员。 android.com/guide/publishing/publishing.html)。使用这个:** market:// search?q = pub: ** – 2012-05-02 00:44:32

+0

这一款针对同一款应用打开市场,真正打开市场分开看我的答案。 – 2014-07-29 02:58:48

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 IN YOUR APP

此代码是Cordova插件的一部分,但非常明显,您需要在本地使用它。

重要的行

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

问候

相关问题