gpt4 book ai didi

android - 如何附加存储在本地应用程序目录中的文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:12 25 4
gpt4 key购买 nike

我有一个 Android 应用程序,可以将文本文件直接保存到手机上,位于应用程序的安装目录中。我需要允许用户创建一个新的电子邮件,附加这个保存的文本文件。当我开始发送电子邮件的 Intent 时,所有内容都正确显示在 Gmail 中,但附件未发送。我对堆栈溢出的所有搜索似乎都只涉及从 SD 卡附加图像文件。下面是我使用的代码。如果我做错了什么,请告诉我。

File myFile = new File(getFilesDir() + "/" + "someFile.txt");
FileOutputStream stream = null;

if( file != null )
{
steam = openFileOutput("someFile.txt", Context.MODE_WORLD_READABLE);
stream.write(some_data);

Uri uri = Uri.fromFile(myFile);

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, email_text);
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);

file.close();

startActivity(Intent.createChooser(sendIntent, "Email:"));
}

我也尝试过 sendIntent.setType("application/octet-stream");但这并没有什么不同。我不知道为什么文件没有附加和发送。

有什么想法吗?

最佳答案

我刚刚遇到了完全相同的问题(想要将文本文件附加到 Gmail 邮件)。如果您查看 Android 日志,原因是:

02-28 21:01:28.434: E/Gmail(19673): file:// attachment paths must point to file:///mnt/sdcard. Ignoring attachment file:///data/data/com.stephendnicholas.gmailattach/cache/Test.txt

作为解决方法,您可以使用 ContentProvider 提供对应用程序内部缓存中文件的访问权限,以便 Gmail 可以附加这些文件。我刚刚写了一个blog post关于如何去做。

希望对您有所帮助:)

关于android - 如何附加存储在本地应用程序目录中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3209304/

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