当我按下按钮时,我的应用会发送电子邮件。我需要附加一个.csv文件。这是代码:
Intent email = new Intent(Intent.ACTION_SEND);
File file = new File(Environment.getExternalStorageState()+"/storage/sdcard0/myfile.csv");
Uri path = Uri.fromFile(file);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"aaa@xxx.it"});
email.putExtra(Intent.EXTRA_SUBJECT, "Some text");
email.putExtra(Intent.EXTRA_TEXT, "Some text");
email.putExtra(Intent.EXTRA_STREAM, path);
email.setType("application/octet-stream");
startActivityForResult(Intent.createChooser(email, "Select client"),1222);
当我运行应用程序时,按下发送按钮,弹出窗口出来,我选择了客户端电子邮件。 当客户端打开时,我可以阅读文本,主题,电子邮件,我可以在底部看到附件(.csv文件)。但是当我发送电子邮件时,接收者没有任何附件。
答案 0 :(得分:1)
Environment.getExternalStorageState()静态方法返回主要“外部”存储的状态,如MEDIA_UNKNOWN, MEDIA_REMOVED, MEDIA_UNMOUNTED
而不是存储路径。
删除您在文件路径之前添加的getExternalStorageState
:
File file = new File("/storage/sdcard0/myfile.csv");
如果文件存储在设备的主存储中,则使用Environment.getExternalStorageDirectory获取存储目录,而不是使用静态。