2013-02-27 110 views
3

如何以编程方式获取系统中的Web浏览器列表?如何获取系统中的Web浏览器列表

更新: 我知道该应用程序的manifest文件必须具有属性android:scheme="http"android:scheme="https"。我知道如何获得系统中所有应用程序的列表抛出getPackageManager().getInstalledPackages(0);。我不知道如何得到这个属性?

+1

你有什么尝试吗? – Usman 2013-02-27 13:08:39

+1

我不是100%确定,但我想你只需测试包是否存在。可能没有办法列出“浏览器”。 – Daniel 2013-02-27 13:09:07

+0

我知道该应用程序的manifest文件必须具有属性'android:scheme =“http”'或'android:scheme =“https”'。我知道如何让系统中的所有应用程序列表抛出'getPackageManager()。getInstalledPackages(0);'。我不知道如何得到这个属性? – 2013-02-27 13:18:40

回答

12

您可以检查,例如,什么Activities系统可以处理一个特定Intent,像这样:

PackageManager packageManager = context.getPackageManager(); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setData(Uri.parse("http://www.google.com")); 
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, 
      PackageManager.MATCH_DEFAULT_ONLY); 
      for (ResolveInfo info : list) { 
       String name = info.name; 
      } 

希望这会为你工作。

+0

什么是“http://www.google.com”?主页?如果浏览器有不同的主页? – 2013-02-27 13:21:52

+1

他只是问系统上安装了哪些应用程序会打开'Uri.parse(“http://www.google.com”)',如果你问我,就可以非常聪明地查询浏览器。 – Budius 2013-02-27 14:28:58

+0

@Egor,Budius,对我来说工作得很好!谢谢! – 2013-02-28 06:40:40