如何获取系统中的Web浏览器列表

时间:2013-02-27 13:06:50

标签: java android

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

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

2 个答案:

答案 0 :(得分:14)

例如,您可以检查系统中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;
            }

希望这对你有用。

答案 1 :(得分:1)

您可以使用包管理器以及打开浏览器的意图来获取设备中所有浏览器的列表。要获取应用程序的程序包名称,可以使用it.activityInfo.packageName,其中it是列表项。

val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.aurl.com"))
val browsersList = packageManager.queryIntentActivities(browserIntent, 
                   PackageManager.MATCH_ALL)
browsersList.forEach {
    val packageName = it.activityInfo.packageName
}