我试图将文本文件附加到电子邮件,我得到一个奇怪的错误,我希望有人能帮助我。当用户从选择器中选择gmail应用程序时,它可以正常工作,但如果他们选择内置的邮件应用程序,他们会看到一个提示"无法附加文件"。
代码如下:
public static void sendMail(Context context, String emailBody, String emailSubject, String emailAddress, String attachmentFilename){
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { emailAddress});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject);
emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody);
if(attachmentFilename != null) {
//Add the attachment by specifying a reference to our custom ContentProvider and the specific file of interest
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + Settings.VYPR_LOG_PROVIDER_AUTHORITY + "/" + attachmentFilename));
}
context.startActivity(emailIntent);
}
有人对这里可能发生的事情有什么想法吗?我在这里看到的大部分内容都与SD卡上的附件有关。实际上我并没有自己写这段代码,但这似乎不是问题所在,因为如果用户选择gmail应用程序而不是内置的应用程序,那么确实可以工作。
提前感谢!
我很久以前就遇到过同样的问题。不得不强制使用Gmail应用程序发送附件。我不明白为什么内置的电子邮件应用程序不工作。
如果您试图接收特定电子邮件地址的附件,您还可以考虑部署web服务来上传附件。
希望能有所帮助。