Android 为什么PackageManager.QueryInputActivities方法只返回操作视图的默认浏览器信息?
我正在尝试使用PackageManager获取设备中所有浏览器的详细信息 这是我试过的东西Android 为什么PackageManager.QueryInputActivities方法只返回操作视图的默认浏览器信息?,android,android-intent,Android,Android Intent,我正在尝试使用PackageManager获取设备中所有浏览器的详细信息 这是我试过的东西 PackageManager pm = context.getPackageManager(); // Get default VIEW intent handler. Intent activityIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); // Get all apps t
PackageManager pm = context.getPackageManager();
// Get default VIEW intent handler.
Intent activityIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));
// Get all apps that can handle VIEW intents.
List resolvedActivityList =
pm.queryIntentActivities(activityIntent, 0);
但是,它只返回一个应用程序详细信息,即我的默认浏览器信息。我找到了解决方案 从api级别23开始,从android文档开始 公共静态最终整数匹配 查询标志:如果设置了,并且平台正在对结果进行任何过滤,则不会进行过滤。这是所有结果都应该返回的同义词
那你想要什么?设备中是否安装了所有浏览器?如果是,则这是执行此操作的方法,并且
List resolvedActivityList;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
resolvedActivityList =
pm.queryIntentActivities(activityIntent,PackageManager.MATCH_ALL );
} else {
resolvedActivityList = pm.queryIntentActivities(activityIntent, 0);
}