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 获取存储目录而不是使用静态。