gpt4 book ai didi

android - 如何在 Android Q 中请求外部文件访问权限?

转载 作者:行者123 更新时间:2023-11-30 05:00:16 29 4
gpt4 key购买 nike

听说 Android Q 引入了一项名为 “Scoped Storage” 的新安全功能,该功能限制访问外部存储中的文件。我的问题是我必须将文本文档从应用程序保存到用户指定的位置。这是否需要任何类型的许可,而不是 Q 设备中的 READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE

最佳答案

My problem is I have to save a text document to a user specified location from the App

使用ACTION_CREATE_DOCUMENT 允许用户指定位置。您可以使用 ContentResolver 及其 openOutputStream() 方法为您获得的 Uri 获取 OutputStreamACTION_CREATE_DOCUMENT 返回。然后,您可以将文本写入该 OutputStream

Is this requires any kind of permission rather than READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE in Q devices?

ACTION_CREATE_DOCUMENT 不需要任何权限,可以回到 Android 4.4。

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

或者,如果您将 targetSdkVersion 保持在 28 或更低,您可以使用 WRITE_EXTERNAL_STORAGE 并在您想要的地方写入,就像您在 Android 9.0+ 上所做的那样。但是,请记住,当您将 targetSdkVersion 提高到超过 28 时(例如,为了符合 2020 年的 Play 商店要求),此方法将停止与 Android R 一起使用。因此,使用 ACTION_CREATE_DOCUMENTgetExternalFilesDir() 是更好的长期答案。

关于android - 如何在 Android Q 中请求外部文件访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58374303/

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