0

我最近将我的应用更新为 Target API 29 (Android Q)。这是一个照片应用程序,可以拍照并将图像存储在图库中。我获得WRITE_EXTERNAL_STORAGE了通过“getExternalStoragePublicDirectory”在主外部存储中创建文件夹并从图库中读取图像的权限。因为,上述方法已被弃用,谷歌推荐了三个选项,我选择了 Mediastore。

参考:https://developer.android.com/reference/android/os/Environment#getExternalStoragePublicDirectory(java.lang.String)

由于我们不再需要写权限来存储图像,所以我在拍照时不再向用户询问写权限。但是要阅读图像,我们需要许可。根据此表,Google 建议获取WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE

参考:https ://developer.android.com/training/data-storage

它还说“让其他应用程序访问您的文件,尽管其他应用程序需要 READ_EXTERNAL_STORAGE 权限”

Android 文档中的此建议, https://developer.android.com/training/data-storage/shared/documents-files

“但是,如果您的应用使用媒体商店,则您必须请求 READ_EXTERNAL_STORAGE 权限才能访问其他应用的媒体文件。”</p>

我用我现有的WRITE_EXTERNAL_STORAGE许可进行了测试,我能够从图库中读取图像。但是从上面的建议中,我觉得我应该去更好地READ_EXTERNAL_STORAGE提供更精细的权限控制。

哪个更合适?

4

1 回答 1

1

Android 更新了他们的文档以在访问图像时仅使用读取的外部存储。这是参考 https://developer.android.com/training/data-storage/use-cases

使用读取外部存储

于 2020-06-01T14:19:46.873 回答