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

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

  // 自己的代码
  Future<bool> getCamera() async {
    try {
      _cameras = await availableCameras();
      if (_cameras.isEmpty) {
        return false;
      }
      return true;
    } catch (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;
      }