我有以下代码来检查支持的意图。当我检查电子邮件支持时,代码在模拟器上的行为与预期的一样。当我在我的实际设备上运行相同的HTC Wildfire和三星Galaxy Nexus时, isEmailSupported 方法返回false。
public static boolean isEmailSupported(Context context) {
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_EMAIL, "example@example.com");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Lorem ipsum...");
return isIntentSupported(context, emailIntent);
}
public static boolean isIntentSupported(Context context, Intent intent) {
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> intentActivities = packageManager.queryIntentActivities(
intent, PackageManager.MATCH_DEFAULT_ONLY);
return intentActivities != null && intentActivities.size() > 0;
}
任何指针都将非常感激。提前谢谢。
答案 0 :(得分:1)
尝试添加您忘记包含在ACTION_SEND
Intent
中的MIME类型。您必须使用setType()
内容的MIME类型调用EXTRA_TEXT
(在这种情况下,显然是text/plain
)。