1
4

1 回答 1

1

我的问题是我必须从应用程序将文本文档保存到用户指定的位置

用于ACTION_CREATE_DOCUMENT允许用户指定位置。你可以使用 use aContentResolver和它的方法来openOutputStream()获取你从. 然后,您可以将文本写入该.OutputStreamUriACTION_CREATE_DOCUMENTOutputStream

这是否需要任何类型的权限,而不是 Q 设备中的 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE?

ACTION_CREATE_DOCUMENT不需要任何权限并且可以回溯到 Android 4.4。

或者,您可以将文件写入由getExternalFilesDir()on标识的目录Context。这部分外部存储在 Android Q 上对用户可见,不需要额外的权限。

或者,如果您保持在targetSdkVersion28 或更低,您可以WRITE_EXTERNAL_STORAGE像在 Android 9.0+ 上所做的那样,在您想要的地方使用和书写。但是,请记住,这种方法将停止与 Android R 一起使用,并且当您提高targetSdkVersion过去的 28 岁时(例如,为了遵守 2020 年的 Play 商店要求)。因此,使用ACTION_CREATE_DOCUMENT或也许getExternalFilesDir()是更好的长期答案。

于 2019-04-29T16:42:00.033 回答