2013-06-02 27 views
3

我有一个与浏览器中打开URL代码:覆盖默认应用程序来处理意图

Intent i = new Intent(Intent.ACTION_VIEW, uri); 
startActivity(i); 

我的问题是,如果用户已经设置了默认的应用程序打开的网址,有没有办法覆盖默认应用程序并显示应用程序选择对话框?

回答

4

我刚找到解决方案。它是如此简单:

startActivity(Intent.createChooser(intent, title)); 
+0

真棒,它的作品! :) –

1

我不知道你的问题的确切答案,但有一个更复杂的决定。您可以获取安装在智能手机上的浏览器列表:

PackageManager manager = getPackageManager(); 
List<ResolveInfo> info = manager.queryIntentActivities(myIntent,PackageManager.MATCH_DEFAULT_ONLY); 

然后手动创建一个选择对话框。

P.S.也许有一个更简单的解决方案...

+0

这可能会解决我的问题。我设置了我的应用程序来处理soundcloud网址,但实际上我有一个需要在浏览器中打开auth2/connect url而不是在我的应用中的情况。实际上我需要的是一种排除'android:pathPrefix'或 'android:pathPattern'的方式,但是没有办法排除。以及soundcloud的网址,无法包含所有其他前缀/模式。 – cucko