在没有 SD 卡的应用程序之间共享临时文件

发布于 2024-11-08 17:54:36 字数 259 浏览 0 评论 0原文

例如,如果我在应用程序的缓存目录中创建临时文件,则无法将其作为附件通过电子邮件发送。这是因为其他应用程序没有读取该文件的权限。

在 API 9 及更高版本中,我可以使用 setReadable(true, false) 将文件设置为全局可读。不幸的是,我的目标是 API 级别 7+。我不想依赖 SD 卡的存在,因此我无法使用 getExternalStorageDir() 返回的位置来存储它,以防不存在卡。

即使没有 SD 卡,如何才能以有效的方式生成和共享临时文件?

If I create a temp file in my application's cache directory I can't, for instance, email it as an attachment. This is because the other app doesn't have permission to read the file.

In API 9 and up, I can set the file to be world readable with setReadable(true, false). unfortunately, I am targetting API level 7+. I don't want to rely on the presence of an SD card, so I can't use the location returned by getExternalStorageDir() to store it in case no card is present.

How can I generate and share a temp file in a way that will work, even with no SD card present?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

世界如花海般美丽 2024-11-15 17:54:36
final String FILENAME = "file.tmp";
final String someData = "File data";

FileOutputStream fos = openFileOutput(FILENAME, 
                                      Context.MODE_WORLD_WRITEABLE | 
                                      Context.MODE_WORLD_READABLE);
fos.write(someData.getBytes());
fos.close();

http://developer.android .com/reference/android/content/Context.html#openFileOutput(java.lang.String,%20int)

final String FILENAME = "file.tmp";
final String someData = "File data";

FileOutputStream fos = openFileOutput(FILENAME, 
                                      Context.MODE_WORLD_WRITEABLE | 
                                      Context.MODE_WORLD_READABLE);
fos.write(someData.getBytes());
fos.close();

http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String,%20int)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文