我开始以 API 33 为目标平台的 Android 13。该应用程序正在请求
Manifest.permission.READ_EXTERNAL_STORAGE
以获得较旧的 API。现在我知道我必须请求新权限:READ_MEDIA_IMAGES
和 READ_MEDIA_VIDEO
。
我在清单中添加了:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
现在,在应用程序的权限设置中,我看到了一个额外的选项来启用这些权限。 我不能做的是在运行时请求许可 如果我尝试在代码中访问
Manifest.permission.READ_MEDIA_IMAGES
,我会得到 unresolved reference
,因此我无法动态请求权限,如果不这样做,则用户需要手动执行此操作。
如何处理
READ_MEDIA_IMAGES
和READ_MEDIA_VIDEO
?
根据官方文档https://developer.android.com/about/versions/13/behavior-changes-13#capsular-media-permissions,您应该在运行时请求许可。 另请注意:
注意:如果您的应用只需要访问图像、照片和视频,请考虑使用照片选择器,而不是声明 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 权限。
代码里面使用
android.Manifest.permission.READ_MEDIA_IMAGES
而不是
Manifest.permission.READ_MEDIA_IMAGEShere