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

Android Camera2手动检测ISO与SHUTTER_SPEED支持性的正确方法

相机设备ISO与快门速度调整支持的正确检测方式

你之前仅通过REQUEST_AVAILABLE_CAPABILITIES的能力位判断的逻辑存在局限,原因是多数Android厂商的前置摄像头定制ROM不会上报MANUAL_SENSOR、READ_SENSOR_SETTINGS能力,但底层实际开放了手动曝光参数的调整权限,所以会出现能力位为false仍可修改参数的情况。

正确检测逻辑如下:

  • 优先直接查询对应参数的硬件支持范围,这是最准确的判断依据
    1. 检测ISO支持:读取SENSOR_INFO_SENSITIVITY_RANGE参数的返回值,只要返回的范围最大值大于最小值,即代表支持ISO调整
    2. 检测快门速度支持:读取SENSOR_INFO_EXPOSURE_TIME_RANGE参数的返回值,只要返回的范围最大值大于最小值,即代表支持快门速度调整
      对应参考代码:
    // 检测ISO支持
    val sensitivityRange = characteristics.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE)
    val supportIso = sensitivityRange != null && sensitivityRange.upper > sensitivityRange.lower
    
    // 检测快门速度支持
    val exposureRange = characteristics.get(CameraCharacteristics.SENSOR_INFO_EXPOSURE_TIME_RANGE)
    val supportShutterSpeed = exposureRange != null && exposureRange.upper > exposureRange.lower
    
  • 可选补充校验:对于部分极端定制机型,可能存在参数范围返回有效但实际下发参数不生效的情况,可以额外构造一次测试用的CaptureRequest,手动写入ISO和快门速度值后下发,再读取CaptureResult的对应返回值,若返回值和写入值一致,则确认完全支持手动调整。
  • 原有能力位判断可以作为快速过滤条件,但不能作为最终判断标准,避免出现漏判问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:39:00