安卓:API等级2和5之间ACTION_SEND区别?
-
20-09-2019 - |
题
我有希望开始电子邮件的Android应用程序。下面的代码工作在API级别5模拟器,但不能在2级仿真器或设备:
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Email from MyApp");
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
"This email was autogenerated by MyApp.");
try {
startActivity(emailIntent);
} catch (Exception e) {
Log.e(TAG,e.getMessage());
showDialog(DIALOG_CANTSENDMAIL);
}
引发的异常表示:
No Activity found to handle Intent { action=android.intent.action.SEND (has extras) }
我可以手动从测试的所有设备(模拟和实际)发送电子邮件,并且这个工作在5级API。上Intent.ACTION_SEND文档说因为API级别1它一直活跃。
解决方案
我觉得差异可能没有那么多的API中,但在系统上可用的应用程序。特别是电子邮件应用Android中1.1和1.5是相当有限的,因此我也不会感到惊讶如果它是不能够处理ACTION_SEND。
也有可能是同一个动作的作品,如果你已经配置了Gmail应用程序,而不是只与电子邮件应用程序(如在模拟器)。
不隶属于 StackOverflow