软件开发 | flutter使用camera插件在安卓11以上的机器上调用availableCameras无法正常获得usb相机列表

软件开发 | flutter使用camera插件在安卓11以上的机器上调用availableCameras无法正常获得usb相机列表

Wisansiiz
2025-09-24 / 0 评论 / 5 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年09月24日,已超过87天没有更新,若内容或图片失效,请留言反馈。

flutter使用camera插件在安卓11以上的机器上调用availableCameras无法正常获得usb相机列表

问题描述: flutter_camera,在安卓7和10上都能正常获取相机列表,但是在安卓11上确因为验证失败无法读取相机, 可能 是高版本的安卓权限更加严格,usb相机必须使用external
解决办法:ctrl+左键进入源文件

  // 自己的代码
  Future<bool> getCamera() async {
    try {
      _cameras = await availableCameras();
      if (_cameras.isEmpty) {
        print('没有可用的相机');
        return false;
      }
      return true;
    } catch (e) {
      print('初始化相机失败: $e');
      return false;
    }
  }
// 源文件1, 继续跟进
Future<List<CameraDescription>> availableCameras() async {
  return CameraPlatform.instance.availableCameras();
}

从实现里找到安卓平台
安卓实现
添加这么一段代码,写法和他原来一样就行,把类型改为external
额外相机

else if ((await proxy
          .newCameraSelector(requireLensFacing: LensFacing.external)
          .filter(<CameraInfo>[cameraInfo])).isNotEmpty) {
        cameraLensDirection = CameraLensDirection.external;
      }
0

评论 (0)

取消