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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取系统中的网络浏览器列表相关的知识,希望对你有一定的参考价值。

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

更新:我知道该应用程序的清单文件必须具有属性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;
            

希望这对您有用。

另一答案

您可以使用程序包管理器以及打开浏览器的意图来获取设备中所有浏览器的列表。要获取应用程序的程序包名称,可以使用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

以上是关于如何获取系统中的网络浏览器列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从为目录列表打开的目录中获取文件?

如何使用 Java 获取连接在同一网络(子网)中的 IP 列表

如何获取可用的 wifi 网络并将它们显示在 android 的列表中

如何在 JavaScript 中记录获取的网络资源?

如何获取 Laravel 中所有模型的列表?

如何简单快速获取SharePoint列表的GUID