【发布时间】:2019-10-12 00:09:52
【问题描述】:
我有一个在下载文件夹中创建文件的应用程序
这很好用 - 它使用它来获取文件路径:
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
【问题讨论】:
标签: java android email android-intent