Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么PackageManager.QueryInputActivities方法只返回操作视图的默认浏览器信息?_Android_Android Intent - Fatal编程技术网

Android 为什么PackageManager.QueryInputActivities方法只返回操作视图的默认浏览器信息?

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获取设备中所有浏览器的详细信息

这是我试过的东西

    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);
}