对于 Android API >= 29,我使用下一个片段来确定镜头何时为单色:
public boolean isMono(@NonNull final CameraCharacteristics characteristics) {
final Integer value = characteristics.get(CameraCharacteristics.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT);
return (value != null)
&& ((value == CameraCharacteristics.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO)
|| (value == CameraCharacteristics.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR));
}
API 29中引入了SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO和SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR 。
对于 API < 29,确定镜头是否为单色的方法是什么?
在 API 28中, REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME可用于了解相机镜头何时是单色的,但在我的测试设备中,对于已知的单色镜头,我没有获得这种能力。我不知道这是否是由于制造商的实施不正确。
至于 APIs < 28 我找不到任何检查方法。