Bien que ce que Google recommande d'utiliser Camera2 Api> = 21, vous pourriez avoir des problèmes avec les paramètres manuels.
Lorsque vous avez besoin d'une application d'implémentation pour prendre des photos avec le mode de réglage automatique, cela fonctionnera bien. Mais! Si vous avez besoin de créer une application avec l'implémentation du mode de réglage manuel, pour les appareils dotés d'une API> = 21, vérifiez d'abord le NIVEAU MATÉRIEL pris en charge:
Sélectionnez la caméra (avant, face), obtenez ses caractéristiques et vérifiez NIVEAU MATÉRIEL.
mCameraCharacteristics = mCameraManager.getCameraCharacteristics(mCameraId)
val level = mCameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)
CameraCharacteristics représente les prochains niveaux pris en charge: LIMITED, FULL, LEGACY, LEVEL_3, EXTERNAL.
À un niveau élevé, les niveaux sont:
Les appareils LEGACY fonctionnent dans un mode de compatibilité ascendante pour les appareils Android plus anciens et ont des capacités très limitées.
Les périphériques LIMITED représentent l'ensemble des fonctionnalités de base et peuvent également inclure des fonctionnalités supplémentaires qui sont des sous-ensembles de FULL.
Les appareils FULL prennent également en charge le contrôle manuel par image des paramètres du capteur, du flash, de l'objectif et du post-traitement, ainsi que la capture d'image à une fréquence élevée.
Les périphériques LEVEL_3 prennent également en charge le retraitement YUV et la capture d'image RAW, ainsi que des configurations de flux de sortie supplémentaires.
Si vous avez le niveau de supprot LEGACY , vous devez utiliser l'ancienne Api de l'appareil photo .