React Native ImagePicker Android13录制视频返回{didCancel:true}问题求助
解决Android 13下react-native-image-picker调用launchCamera录制视频返回
{"didCancel": true}的问题 排查与解决步骤:
1. 适配Android 13媒体权限
Android 13对媒体权限做了细分,需在AndroidManifest.xml中补充新增的视频权限:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- Android 13+ 专属视频权限 --> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
同时在代码中动态申请这些权限,确保应用获得录制视频所需的全部权限。
2. 检查模拟器功能完整性
Android 13模拟器的媒体模拟可能存在异常:
- 进入模拟器设置,确认应用已获得相机、麦克风权限
- 重启模拟器,或更换带Google APIs的Android 13镜像
- 先在模拟器中打开系统相机录制视频,确认系统级相机功能正常
3. 调整launchCamera配置参数
简化或补充配置参数,尝试规避兼容性问题:
const pickedFiles = await launchCamera({ mediaType: 'video', quality: 0.8, cameraType: 'back', allowsEditing: false, saveToPhotos: true })
关闭编辑功能并强制保存到相册,减少流程中可能触发的异常。
4. 确认版本匹配性
确保React Native版本与react-native-image-picker版本兼容,比如React Native 0.70及以上版本对Android 13的支持更完善。可查看image-picker版本的发布说明,确认是否有针对Android 13的修复项。
5. 优先真机测试
模拟器的媒体环境和真机差异较大,尽快在Android 13真机上验证,排除模拟器本身的功能缺陷问题。
内容的提问来源于stack exchange,提问作者JuJu
相关产品推荐
相关产品推荐

