【发布时间】:2018-08-13 17:45:59
【问题描述】:
我正在尝试检查所有已安装应用程序处理“Intent.ACTION_SENDTO”的能力,为此我使用了以下 sn-p 代码。
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
}
这个 sn-p 似乎为 Android N 及更高版本提供了正确的结果,但对于 API 级别 23 及以下,此 sn-p 给了我 emptyList。然而,有趣的部分甚至对于 API 级别 23 和 Intent.ACTION_SENDTO 以下的设备是由邮件应用程序处理的,当我运行以下 sn-p 时,电子邮件应用程序就会启动
Intent i = new Intent(Intent.ACTION_SENDTO,Uri.parse(UIConstants.EMAIL_URI+mEmail));
startActivity(i);
谁能帮我理解为什么infos.size() 在我的第一个 sn-p 中为 API 级别 23 及以下级别返回 0
【问题讨论】:
标签: android android-intent intentfilter