Хотя, что Google рекомендует использовать Camera2 Api> = 21, но у вас могут возникнуть проблемы с ручными настройками.
Когда вам понадобится приложение для фотографирования в режиме автоматической настройки, оно будет работать нормально. Но! Если необходимо создать приложение с реализацией в режиме ручной настройки, для устройств с API> = 21, во-первых, необходимо проверить поддерживаемый уровень аппаратного обеспечения:
Выберите камеру (Front, Face), получите ее характеристики и проверьте УРОВЕНЬ ОБОРУДОВАНИЯ.
mCameraCharacteristics = mCameraManager.getCameraCharacteristics(mCameraId)
val level = mCameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)
Характеристики камеры представляют следующие поддерживаемые уровни: LIMITED, FULL, LEGACY, LEVEL_3, EXTERNAL.
На высоком уровне это следующие уровни:
Устаревшие устройства работают в режиме обратной совместимости со старыми устройствами Android и имеют очень ограниченные возможности.
ОГРАНИЧЕННЫЕ устройства представляют собой базовый набор функций и могут также включать дополнительные возможности, которые являются подмножествами ПОЛНОГО.
ПОЛНЫЕ устройства дополнительно поддерживают покадровое ручное управление настройками датчика, вспышки, объектива и последующей обработки, а также захват изображения с высокой скоростью.
Устройства LEVEL_3 дополнительно поддерживают повторную обработку YUV и захват изображений RAW, а также дополнительные конфигурации выходного потока.
Если у вас есть уровень поддержки LEGACY , вам следует использовать старый Camera Api .