gpt4 book ai didi

Android:将简单文本共享为文件/附件

转载 作者:行者123 更新时间:2023-11-30 01:12:36 30 4
gpt4 key购买 nike

我有一个应用程序可以收集一些信息并允许用户使用 Android 的 Intent 框架共享这些信息。

到目前为止,它以纯文本形式共享报告:使用 putExtra(Intent.EXTRA_TEXT, report),其中 report 是一个 String .

但是,我希望将报告作为文件共享,这样可以更轻松地作为电子邮件附件而不是正文进行共享。

我必须为此目的创建一个实际文件吗?如果我这样做,它必须位于其他应用程序可以读取的位置,如 send binary content 中所述。 .

我期待一个 API 允许我提供一个 ByteArrayOutputStream,所以也许我只是遗漏了一些东西。具体来说,我宁愿不强制共享应用程序获得对任何存储的许可。

最佳答案

使用FileProvider共享不可公开访问的文件。查看Setting Up File Sharing一个简短的教程。

不过,将文本作为电子邮件附件发送有点棘手。您不能使用 text/plain 作为类型,因为这意味着数据是在 EXTRA_TEXT 中提供的。但是这个 extra 中的文本最终会出现在电子邮件正文中,而不是附件中。

应该起作用的是:

Uri fileUri = FileProvider.getUriForFile(context, "org.example.provider.authority", reportFile);

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("*/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri);

startActivity(Intent.createChooser(shareIntent, null));

您还应确保 FileProvider.getType() 为报告文件返回 text/plain。完成此操作的最简单方法是使用 .txt 作为文件扩展名,FileProvider 将自动执行正确的操作。

关于Android:将简单文本共享为文件/附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38280228/

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