我希望我的应用程序将文本文件写入 Documents 文件夹(或卸载应用程序后仍然存在的任何其他内存部分)。
在 Android 9 (SDK 28) 之前,可以按如下方式访问 Documents 文件夹
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
由于新的范围内存策略,现在已弃用。官方文档说
通过迁移到 Context#getExternalFilesDir(String)、MediaStore 或 Intent#ACTION_OPEN_DOCUMENT 等替代方案,应用程序可以继续访问存储在共享/外部存储上的内容。
第一个选项,Context#getExternalFilesDir(String)
不是我想要的,因为
这就像 getFilesDir() 一样,在卸载应用程序时这些文件将被删除
第三个选项Intent#ACTION_OPEN_DOCUMENT
是不够的,因为我想在访问之前写入文件。
看起来MediaStore
是唯一的办法。我在 MediaStore 中看到了一些不完整的代码示例,但我找不到详尽的答案。
请问,您能否提供一个完整的 Java 片段,展示如何在 Android 10 中从卸载持久内存中写入/读取文本文件?尽管 Android 10 有严格的隐私政策,但如果用户授予权限,我不明白为什么这是不可能的。非常感谢。