代码之家  ›  专栏  ›  技术社区  ›  Tseng

找出安装了哪些浏览器?

  •  0
  • Tseng  · 技术社区  · 15 年前

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

    为什么我需要它?

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

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

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

    发送意愿

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

    我想应该不是问题。问题是,我不能发送一个标准的intent-fr URL,因为如果用户设置为默认值,我的应用程序会再次捕获它。

    1 回复  |  直到 9 年前
        1
  •  1
  •   CommonsWare    15 年前

    我想应该不是问题

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

    所以我需要一种方法将这个意图直接发送到浏览器,但是要这样做,我必须知道用户使用的是哪个应用程序。 例如,已设置为HTTP/HTTPS方案的默认值(因为如果有多个方案,用户可以更改该方案) 已安装浏览器)。

    使用 PackageManager queryIntentActivityOptions() 筛选出您的活动并获得用户可以选择的其他活动的列表。