React Native 0.65.3中PermissionsAndroid缺失READ_MEDIA_IMAGES的解决办法
解决React Native 0.65.3适配Android 13图片读取权限的问题
由于React Native 0.65.3的PermissionsAndroid.PERMISSIONS未包含Android 13新增的READ_MEDIA_IMAGES权限常量,直接使用字符串字面量替代该常量即可,无需升级RN版本。
具体修改方案
将权限判断代码中的PermissionsAndroid.PERMISSIONS.READ_MEDIA_IMAGES替换为字符串'android.permission.READ_MEDIA_IMAGES',修改后的代码如下:
const permission = Platform.Version >= 33 ? 'android.permission.READ_MEDIA_IMAGES' : PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE; const hasPermission = await PermissionsAndroid.check(permission);
额外注意事项
- 务必在
AndroidManifest.xml中添加对应权限声明,区分不同Android版本:<!-- 适配Android 13及以上版本 --> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!-- 兼容Android 12及以下版本,限制仅在32及以下SDK生效 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> - 若需要主动请求权限,同样使用字符串形式的权限值,示例代码:
const granted = await PermissionsAndroid.request( permission, { title: '图片读取权限申请', message: '需要访问您的相册以获取图片', buttonNeutral: '稍后再说', buttonNegative: '取消', buttonPositive: '允许', }, );
内容的提问来源于stack exchange,提问作者gkeenley
相关产品推荐
相关产品推荐

