我有一个应用程序可以在下载文件夹中创建一个文件这工作正常 - 它使用它来获取文件路径: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
1 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
Uri.parse("content://" + exportFilePath);
这不是您获得content
Uri
. 用于FileProvider
提供Downloads
目录的内容,然后用于FileProvider.getUriForFile()
获取content
Uri
该文件的 a。相当详细的使用说明FileProvider
可以在它的 JavaDocs中找到。
添加回答
举报
0/150
提交
取消