Android QueryInputActivities方法返回API级别23(棉花糖)及以下的空列表

Android QueryInputActivities方法返回API级别23(棉花糖)及以下的空列表,android,android-intent,intentfilter,Android,Android Intent,Intentfilter,我正在尝试检查所有已安装的应用程序是否具有处理“Intent.ACTION\u SENDTO”的功能,我正在使用下面的代码片段 Intent mailIntent = new Intent(Intent.ACTION_SENDTO); infos = manager.queryIntentActivities(mailIntent, 0); Log.i(TAG,"number of apps that can hadle ACTION_SENDTO

我正在尝试检查所有已安装的应用程序是否具有处理“Intent.ACTION\u SENDTO”的功能,我正在使用下面的代码片段

        Intent mailIntent = new Intent(Intent.ACTION_SENDTO);
        infos = manager.queryIntentActivities(mailIntent, 0);
        Log.i(TAG,"number of apps that can hadle ACTION_SENDTO "+infos.size());
        if(infos.size()>0){
            //do actions
        }
这段代码似乎给出了Android N及以上版本的正确结果,但对于API级别23及以下版本,这段代码给出了emptyList。然而,有趣的是,即使是API级别为23且低于Intent.ACTION_SENDTO的设备也由邮件应用程序处理,当我运行下面的代码段时,邮件应用程序将启动

Intent i = new Intent(Intent.ACTION_SENDTO,Uri.parse(UIConstants.EMAIL_URI+mEmail));
                    startActivity(i);

有人能帮我理解为什么在我的第一个API级别23及以下的代码片段中重新调用0吗?请尝试检查您是否可以通过以下方式处理此意图:

PackageManager packageManager = getActivity().getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent);
} else {
    Log.d(TAG, "No Intent available to handle action");
}

设置数据应该可以做到这一点。
mailIntent.setData(Uri.parse(“mailto:”)

试图检查上述代码段,但不起作用。检查应用程序是否可以处理意图的任何其他方法