You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 13+系统Flutter应用相机无法使用问题求助

Android 13+ Flutter相机无法使用问题解决思路

核心问题分析

你遇到的Read memory card access denied报错,本质是存储权限适配问题——尽管相机权限已授予,但images_picker在拍照后访问/写入存储时,存在无效权限配置冲突或权限请求不完整的情况。


具体解决步骤

1. 清理AndroidManifest中无效/冗余权限

Android 13+对存储权限做了大幅调整,必须移除以下无效权限:

  • android.permission.MANAGE_EXTERNAL_STORAGE:仅系统级文件管理器应用需要,普通应用无法通过常规流程获取,且会干扰权限逻辑
  • android.permission.WRITE_MEDIA_STORAGE、android.permission.READ_MEDIA_STORAGE:这两个权限在Android 13+中已被废弃,官方用分类型媒体权限替代

整理后权限配置参考:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-feature android:name="android.hardware.camera" android:required="true" />

<!-- Android 13+ 官方媒体权限 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>

2. 移除无效的分区存储兼容配置

Android 13+强制启用分区存储,android:requestLegacyExternalStorage="true"已完全失效,直接从<application>标签中删除该属性。

3. 补充完整的权限请求逻辑

仅请求相机权限不足以覆盖拍照后存储访问需求,需同时请求媒体相关权限:

// 同时请求相机和照片权限
PermissionStatus cameraStatus = await Permission.camera.request();
PermissionStatus photoStatus = await Permission.photos.request();

// 确保两个权限都已授予再调用相机
if (cameraStatus.isGranted && photoStatus.isGranted) {
  // 调用images_picker相机逻辑
  final result = await ImagesPicker.openCamera(
    pickType: PickType.image,
    // 可选:指定应用私有目录作为保存路径,无需额外权限
    savePath: (await getApplicationDocumentsDirectory()).path,
  );
}

4. 检查images_picker调用参数

  • 避免指定外部存储的公共目录作为savePath,若需保存到公共相册,无需手动指定路径,images_picker会自动通过MediaStore API处理
  • 若上述步骤无效,可尝试升级images_picker到最新稳定版,确认版本是否存在Android 13+适配漏洞

内容的提问来源于stack exchange,提问作者behnam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:05:15