Chociaż to, co zaleca Google, użyj Camera2 Api> = 21, ale możesz mieć problem z ustawieniami ręcznymi.
Kiedy potrzebujesz aplikacji do robienia zdjęć w trybie ustawień automatycznych, będzie działać dobrze. Ale! W razie potrzeby utwórz aplikację z implementacją trybu ustawień ręcznych, dla urządzeń, które mają API> = 21, najpierw sprawdź obsługiwany POZIOM SPRZĘTU:
Wybierz kamerę (przód, twarz), uzyskaj jej charakterystykę i sprawdź POZIOM SPRZĘTU.
mCameraCharacteristics = mCameraManager.getCameraCharacteristics(mCameraId)
val level = mCameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)
CameraCharacteristics reprezentują kolejne obsługiwane poziomy: LIMITED, FULL, LEGACY, LEVEL_3, EXTERNAL.
Na wysokim poziomie poziomy to:
Urządzenia LEGACY działają w trybie kompatybilności wstecznej dla starszych urządzeń z Androidem i mają bardzo ograniczone możliwości.
Urządzenia OGRANICZONE reprezentują podstawowy zestaw funkcji i mogą również obejmować dodatkowe możliwości, które stanowią podzbiory FULL.
PEŁNE urządzenia dodatkowo obsługują ręczne sterowanie dla poszczególnych klatek ustawieniami czujnika, lampy błyskowej, obiektywu i przetwarzania końcowego oraz przechwytywanie obrazu z dużą szybkością.
Urządzenia LEVEL_3 dodatkowo obsługują ponowne przetwarzanie YUV i przechwytywanie obrazu RAW, a także dodatkowe konfiguracje strumienia wyjściowego.
Jeśli masz poziom supprot LEGACY , powinieneś użyć starego interfejsu Camera Api .