Android电子邮件意图不发送附加文件

时间:2010-08-29 17:05:12

标签: android email android-intent attachment

我创建了一个发送带有录音的电子邮件的应用程序,当触发意图并选择电子邮件作为发送附件的应用程序时,您可以看到附件但附件未送达。

Intent sendIntent = new Intent(Intent.ACTION_SEND);
//Mime type of the attachment (or) u can use sendIntent.setType("*/*")
sendIntent.setType("audio/3gp");
//Subject for the message or Email
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "My Recording");
//Full Path to the attachment
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(fileName));
//Use a chooser to decide whether email or mms
startActivity(Intent.createChooser(sendIntent, "Send email..."));

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

我想通了,你需要确保你的uri在它前面有“file://”。

答案 1 :(得分:0)

从API级别24开始,您不能使用“file://”URI在包之间传递文件。相反,您应该实现FileProvider并使用它传递文件。

Uri fileUri = FileProvider.getUriForFile(context, "com.yourdomain.yourapp.fileprovider", file);

FileProvides的优点是您不需要WRITE_EXTERNAL_STORAGE权限(对于API级别21及更高级别)。

another StackOverflow answer或该文档中的最佳说明。