2010-09-22 96 views
0

我在寻找哪些浏览器安装在Android智能手机和他们的包名的方式来了解一下。找出安装了哪些浏览器?

为什么需要它?

嗯,基本上,我的应用程序对某些URL反应,即http://bit.ly,所以当点击这样的,他会得到一个选择在应用程序中打开它。到目前为止,一切都按照预期工作。

如果用户设置了该应用程序为默认这种链接,它会一直在这一个没有进一步询问用户开放。到目前为止这么好。但通过这样做,他将完全无法在他的浏览器中打开这个链接。

所以我需要一种方法将这个意图直接发送到浏览器,但要做到这一点,我必须知道用户设置为默认用于http/https方案的应用程序(例如用户可以更改它安装了多个浏览器)。

发送带有

intent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity")); 

的打算should't是一个问题,我想。问题是,我无法发送URL的标准意图,因为如果用户将其设置为默认值,我的应用程序会再次捕获它。

+1

为什么你想设置为发送到默认浏览器?只需将该链接作为意图发送,并让手机决定将哪个浏览器设置为默认设置。 – Falmarri 2010-09-22 20:43:52

+0

因为如果我按照正常的意图发送它,我的应用程序会再次捕获它(如果设置为默认值)。在这种情况下,这不是理想的结果。 假设你有一个应用,该应用捕获http://www.flickr.com/photos/ URL和他们在开启应用程式。但是现在你想让用户有机会在浏览器中打开它。如果你发送正常的意图,你的应用程序会再次打开它。所以你需要将它发送到一个特定的浏览器,所以你的应用程序不会再捕获它 – Tseng 2010-09-22 21:50:17

回答

1

should't是一个问题,我觉得

在硬连线的代码包和类名是不是你是总是问题。

所以我需要一种方法来此的意图直接发送给浏览器,但这样做,我必须知道哪些应用程序中的用户 已设置为默认值,例如HTTP/HTTPS方式(如用户可以更改如果安装了多于1个的 浏览器)。

使用PackageManagerqueryIntentActivityOptions()过滤您的活动并获取用户可以选择的其他活动的列表。

+0

谢谢,这是一个正确的方向很好的提示。 – Tseng 2010-09-24 10:00:23

相关问题