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)