如何以编程方式获取系统中的Web浏览器列表?如何获取系统中的Web浏览器列表
更新: 我知道该应用程序的manifest文件必须具有属性android:scheme="http"
或android:scheme="https"
。我知道如何获得系统中所有应用程序的列表抛出getPackageManager().getInstalledPackages(0);
。我不知道如何得到这个属性?
如何以编程方式获取系统中的Web浏览器列表?如何获取系统中的Web浏览器列表
更新: 我知道该应用程序的manifest文件必须具有属性android:scheme="http"
或android:scheme="https"
。我知道如何获得系统中所有应用程序的列表抛出getPackageManager().getInstalledPackages(0);
。我不知道如何得到这个属性?
您可以检查,例如,什么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;
}
希望这会为你工作。
什么是“http://www.google.com”?主页?如果浏览器有不同的主页? – 2013-02-27 13:21:52
他只是问系统上安装了哪些应用程序会打开'Uri.parse(“http://www.google.com”)',如果你问我,就可以非常聪明地查询浏览器。 – Budius 2013-02-27 14:28:58
@Egor,Budius,对我来说工作得很好!谢谢! – 2013-02-28 06:40:40
你有什么尝试吗? – Usman 2013-02-27 13:08:39
我不是100%确定,但我想你只需测试包是否存在。可能没有办法列出“浏览器”。 – Daniel 2013-02-27 13:09:07
我知道该应用程序的manifest文件必须具有属性'android:scheme =“http”'或'android:scheme =“https”'。我知道如何让系统中的所有应用程序列表抛出'getPackageManager()。getInstalledPackages(0);'。我不知道如何得到这个属性? – 2013-02-27 13:18:40