我正在努力创建应用,但我遇到了问题。在我将一些数据插入名为“message.txt”的文件后,我无法通过电子邮件发送此文件,因为我的智能手机说“无法发送附件”。我该如何解决这个问题?
这是代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String address = ...
byte[] messagetosend = ...
String filename = "message.txt";
File file = new File(getExternalFilesDir(null), filename);
FileOutputStream outputstream;
try {
outputstream = openFileOutput(filename,MODE_WORLD_READABLE);
outputstream.write(messagetosend);
outputstream.flush();
outputstream.getFD().sync();
outputstream.close();
} catch (Exception e1) {
e1.printStackTrace();
}
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{address});
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
sendIntent.setType("*/*");
startActivity(Intent.createChooser(sendIntent,"Send with..."));
}
答案 0 :(得分:0)
第三方应用无权访问该文件。使用FileProvider
投放,或将文件复制到external storage而不是internal storage。
答案 1 :(得分:0)
如果您已将该文件保存为应用专用, 该应用程序可以查看是否正常,但外部电子邮件客户端将无法看到它。 您需要将其写入外部存储,或将其公开。您将了解访问级别visit this link和visit this。
或尝试使用JavaMail here is solved,here is too
发送电子邮件