如何以编程方式获取系统中的Web浏览器列表?
更新:
我知道该应用程序的哪个manifestfile必须具有属性android:scheme="http"
或android:scheme="https"
。我知道如何获取系统中所有应用程序的列表抛出getPackageManager().getInstalledPackages( 0);
。我不知道怎么得到这个属性?
答案 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
}