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

Flutter Camera插件:如何检测设备是否具备闪光灯功能?

检测设备是否支持闪光灯(基于camera插件)

要避免设置闪光灯时抛出CameraException,你可以通过camera插件提供的CameraDescription对象来检测设备是否具备闪光灯能力,具体方法如下:

1. 检查所有可用相机的闪光灯支持

调用availableCameras()获取设备上所有可用的相机描述,遍历每个相机的availableFlashModes属性:

  • 如果该属性不为空,且包含除FlashMode.off之外的模式(如FlashMode.always、FlashMode.auto),说明设备存在支持闪光灯的相机。

示例代码:

import 'package:camera/camera.dart';

Future<bool> deviceHasFlash() async {
  final cameras = await availableCameras();
  for (final camera in cameras) {
    if (camera.availableFlashModes != null &&
        camera.availableFlashModes!.any((mode) => mode != FlashMode.off)) {
      return true;
    }
  }
  return false;
}

2. 针对当前使用的相机做检查

如果你的应用已经初始化了相机控制器,可以直接通过控制器的description属性检查当前相机的闪光灯支持:

// 确保_controller已完成初始化
if (_controller.description.availableFlashModes != null &&
    _controller.description.availableFlashModes!.contains(FlashMode.always)) {
  await _controller.setFlashMode(FlashMode.always);
} else {
  // 处理无闪光灯的场景,比如提示用户设备不支持闪光灯
}

注意:部分设备仅后置相机配备闪光灯,前置相机无此功能,因此如果你的应用切换相机,需要重新检查对应相机的闪光灯支持情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:48:19