找出安装的浏览器?

时间:2010-09-22 20:35:44

标签: android browser android-intent

我正在寻找一种方法来找出Android智能手机上安装的浏览器及其软件包名称。

为什么需要它?

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

如果用户将此应用程序设置为此类链接的默认应用程序,它将始终在此应用程序中打开,而无需进一步询问用户。到目前为止也很好。但通过这样做,他将无法在浏览器中打开此链接。

所以我需要一种方法将此意图直接发送到浏览器,但为此我必须知道用户已将哪个应用设置为http / https方案的默认值(因为如果有,用户可以更改它)安装了多个浏览器)。

发送打算

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

应该不是问题。问题是,我无法发送标准的URL用户名,因为如果用户将其设置为默认值,我的应用程序会再次捕获它。

1 个答案:

答案 0 :(得分:1)

  我认为

应该不是问题

在您的代码的包名和类名中硬连线是 总是 一个问题。

  

所以我需要一种方法将此意图直接发送到浏览器,但为此我必须知道用户使用哪个应用程序   例如,已设置为http / https方案的默认值(因为用户可以在超过1时更改它)   安装浏览器。)

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