如何在Android设备上找到默认浏览器设置

kka*_*kar 16 browser android default

有没有办法找出哪个浏览器设置为Android设备上的默认浏览器?在Android设备上可能安装了多个浏览器,但其中只有一个设置为默认设置.我需要以编程方式找到它.

提前致谢.早期回应表示赞赏..

exl*_*ong 18

此代码可以帮助您:

Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://"));  
ResolveInfo resolveInfo = getPackageManager().resolveActivity(browserIntent,PackageManager.MATCH_DEFAULT_ONLY);

// This is the default browser's packageName
String packageName = resolveInfo.activityInfo.packageName;
Run Code Online (Sandbox Code Playgroud)

如果想要启动它,请执行以下操作:

startActivity(getPackageManager().getLaunchIntentForPackage(packageName));
Run Code Online (Sandbox Code Playgroud)

  • 对于我(Android 9)来说,即使正确选择了默认浏览器,它也会始终返回“android”(我认为是选择器)。将 URI 更改为真实的 URI (`http://example.com`) 修复了该问题。 (3认同)
  • 如果您只是想要应用程序的名称(例如“ Chrome”),请使用以下命令:resolveInfo.loadLabel(getPackageManager())。toString(); (2认同)
  • 如果您的应用程序面向 Android 11 或更高版本,则必须在清单的 <queries> 元素中添加声明才能使其正常工作,如下所述 https://developer.android.com/training/package-visibility/use-cases (2认同)

Com*_*are 5

欢迎您使用PackageManagerresolveActivity()尝试确定哪些活动(在哪个应用程序中)将处理特定的Intent. 然而,这可能表明选择器将处理该请求,因为当前没有默认值(例如,用户刚刚安装了新的浏览器,因此选择器将在下一个 Web 浏览器请求时出现)。