1 回答
我的问题是我必须从应用程序将文本文档保存到用户指定的位置
用于ACTION_CREATE_DOCUMENT
允许用户指定位置。你可以使用 use aContentResolver
和它的方法来openOutputStream()
获取你从. 然后,您可以将文本写入该.OutputStream
Uri
ACTION_CREATE_DOCUMENT
OutputStream
这是否需要任何类型的权限,而不是 Q 设备中的 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE?
ACTION_CREATE_DOCUMENT
不需要任何权限并且可以回溯到 Android 4.4。
或者,您可以将文件写入由getExternalFilesDir()
on标识的目录Context
。这部分外部存储在 Android Q 上对用户可见,不需要额外的权限。
或者,如果您保持在targetSdkVersion
28 或更低,您可以WRITE_EXTERNAL_STORAGE
像在 Android 9.0+ 上所做的那样,在您想要的地方使用和书写。但是,请记住,这种方法将停止与 Android R 一起使用,并且当您提高targetSdkVersion
过去的 28 岁时(例如,为了遵守 2020 年的 Play 商店要求)。因此,使用ACTION_CREATE_DOCUMENT
或也许getExternalFilesDir()
是更好的长期答案。