gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:08:21 25 4
gpt4 key购买 nike

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

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

文件路径 = 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

最佳答案

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

这不是您获取 content Uri 的方式。 Use FileProvider提供 Downloads 目录的内容,然后使用 FileProvider.getUriForFile() 获取 content Uri对于那个文件。可以在 its JavaDocs 中找到有关使用 FileProvider 的相当详细的说明。 .

关于java - 通过电子邮件发送文件 - 无法获取附件 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com