为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

交互式爱情 2022-12-15 17:06:27
我有一个应用程序可以在下载文件夹中创建一个文件这工作正常 - 它使用它来获取文件路径: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中找到。


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信