Intent.ACTION_SEND 没有发送附件
Intent.ACTION_SEND doesn't send attachment
我的应用程序会在我按下按钮时发送一封电子邮件。我需要附加一个 .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 文件)。但是当我发送邮件时,收件人没有任何附件。
Environment.getExternalStorageState() 静态方法 return 主状态 "external" 存储方式 MEDIA_UNKNOWN, MEDIA_REMOVED, MEDIA_UNMOUNTED
而不是存储路径。
删除要在文件路径前添加的 getExternalStorageState
:
File file = new File("/storage/sdcard0/myfile.csv");
如果文件存储在设备的主存储中,则使用 Environment.getExternalStorageDirectory 获取存储目录而不是使用静态。
我的应用程序会在我按下按钮时发送一封电子邮件。我需要附加一个 .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 文件)。但是当我发送邮件时,收件人没有任何附件。
Environment.getExternalStorageState() 静态方法 return 主状态 "external" 存储方式 MEDIA_UNKNOWN, MEDIA_REMOVED, MEDIA_UNMOUNTED
而不是存储路径。
删除要在文件路径前添加的 getExternalStorageState
:
File file = new File("/storage/sdcard0/myfile.csv");
如果文件存储在设备的主存储中,则使用 Environment.getExternalStorageDirectory 获取存储目录而不是使用静态。