通过电子邮件发送文件 - 无法获取附件 - Android

我有一个应用程序可以在下载文件夹中创建一个文件


这工作正常 - 它使用它来获取文件路径:


File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);


现在我正在尝试将该文件附加到电子邮件中,我想我已经接近了,但是我从 Gmail 收到一个错误,它无法附加该文件。


我从更改file://为content://因为在此之前我无法克服另一个错误。


try {

    final Intent emailIntent = new Intent(Intent.ACTION_SEND);

    emailIntent.setType("plain/text");

    emailIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.email_subject));

    URI = Uri.parse("content://" + exportFilePath);

    emailIntent.putExtra(Intent.EXTRA_STREAM, URI);

    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, getString(R.string.email_body));

    emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    emailIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

    this.startActivity(Intent.createChooser(emailIntent, getString(R.string.action_export)));

}

catch (Throwable t) {

    Toast.makeText(this, "failed: " + t.toString(), Toast.LENGTH_LONG).show();

    Log.e("URI: ", URI.toString());

}

“ exportFilePath”包含文件创建时的完整路径。

它看起来像这样: /storage/emulated/0/Download/file.csv


交互式爱情
浏览 64回答 1
1回答

qq_笑_17

Uri.parse("content://" + exportFilePath);这不是您获得content Uri. 用于FileProvider提供Downloads目录的内容,然后用于FileProvider.getUriForFile()获取content Uri该文件的 a。相当详细的使用说明FileProvider可以在它的 JavaDocs中找到。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java