7

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

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

4

2 回答 2

17

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

希望这对你有用。

于 2013-02-27T13:16:21.763 回答
2

您可以使用包管理器以及打开浏览器的意图来获取设备中所有浏览器的列表。要获取应用程序的包名称,您可以使用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
}
于 2020-03-25T13:52:19.557 回答