设置"message/rfc822"类型以便在Android仿真器上发送带有文件附件的电子邮件存在问题。我必须使用setType(“message/ for 822”),因为该文件没有标准的MIME类型(SQLite数据库),而且我试图避免在选择列表中出现许多应用程序供用户选择。对于2.3.3之前的所有级别,我都有一个错误:
java.lang.RuntimeException:
Unable to start activity ComponentInfo{my.cashwatcher/my.cashwatcher.SendEmailActivity}:
android.content.ActivityNotFoundException:
No Activity found to handle Intent { act=android.intent.action.SEND typ=message/rfc822
(has extras) }在API级别上,2.3.3代码工作正常,错误不出现。这是Android仿真器的问题还是旧API的问题?
代码:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("message/rfc822");
sendIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{appPrefs.getEmail("email")});
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), DATABASE_PATH)));
sendIntent.putExtra(Intent.EXTRA_TEXT, "body_of_email");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "APPLICATION_NAME");
startActivityForResult(sendIntent, EMAIL_SEND_RESULT);发布于 2011-11-26 19:19:10
首先,“为了避免选择列表中的许多应用程序供用户选择”,请使用ACTION_SENDTO和mailto: Uri。
第二,您正在体验的不是“Android仿真器问题”,也不是“旧API”。您需要1+应用程序能够处理ACTION_SEND Intent和MIME类型的message/rfc822。不能保证任何给定的设备都会支持这种组合,更不用说任何给定的模拟器了。您的代码需要处理这个问题,就像您使用ACTION_GOBBLEDYGOOK或MIME类型的thisis/sonotreal之类的一样。
发布于 2015-10-16 08:48:59
,这是解决办法。使用以下代码,工作perfectly...Got解决方案研究后.:)
Intent testIntent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:?subject=" + "blah blah subject" + "&body=" +
"blah blah body" + "&to=" + "sendme@me.com");
testIntent.setData(data);
startActivity(testIntent); https://stackoverflow.com/questions/8280166
复制相似问题