我创建了一个发送带有录音的电子邮件的应用程序,当触发意图并选择电子邮件作为发送附件的应用程序时,您可以看到附件但附件未送达。
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..."));
有什么想法吗?
答案 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或该文档中的最佳说明。