我需要尝试手动设置exposure time
和iso
。
我发现answer on stack,它解释了我们首先需要检查是否支持HARDWARE_LEVEL_FULL
,如果是,则表示您可以设置手动设置。
为了检查谷歌提供的方法
// Returns true if the device supports the required hardware level, or better.
boolean isHardwareLevelSupported(CameraCharacteristics c, int requiredLevel) {
int deviceLevel = c.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
if (deviceLevel == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY) {
return requiredLevel == deviceLevel;
}
// deviceLevel is not LEGACY, can use numerical sort
return requiredLevel <= deviceLevel;
}
问题是:我已经检查了我的3个不同的设备,并且所有设备都有LEVEL_LEGACY
...这意味着我无法触摸手动设置......但是因此我想知道设备支持{ {1}}?
也许我在以错误的方式对待这个?
答案 0 :(得分:0)
所有FULL设备都支持手动控制(并且LEGACY设备不支持手动控制),所以这一切都是正确的。
但是,可能有一些有限级别的设备支持手动控制。更具体的检查是寻找MANUAL_SENSOR能力。
不幸的是,大量Android设备仍在使用较旧的相机HAL,并且只能通过camera2 API支持LEGACY级别。他们可能有供应商自定义实现,通过旧的相机API调整灵敏度等,但这些不是标准的或一般记录。