Il me faut UNE fonction pour vérifier si la caméra frontale existe et, le cas échéant - afficher un aperçu. J'ai trouvé quelques liens, mais chacun d'entre eux parle d'un périphérique spécifique:
Quelqu'un peut-il fournir un code générique pour cela? Ou peut-être un code combiné qui fonctionnera avec tous les appareils?
Pour les API> = 9 , vous pouvez utiliser la classe Camera
: http://developer.Android.com/reference/Android/hardware/Camera.html pour voir si elle en possède plusieurs. caméra, et interroger la CameraInfo
getNumberOfCameras
getCameraInfo
:
http://developer.Android.com/reference/Android/hardware/Camera.CameraInfo.html
Constantes
int CAMERA_FACING_BACK La face de la caméra est opposée à celle de l'écran.
int CAMERA_FACING_FRONT Le recto de la caméra est identique à celui de l'écran.
Pour les API> = 5 , une option consiste à lire public List<Camera.Size> getSupportedPictureSizes ()
. Les caméras frontales ont généralement une résolution maximale beaucoup plus basse que les caméras arrières.
http://developer.Android.com/reference/Android/hardware/Camera.Parameters.html
Cela a été posté par kcoppock , mais j’ai pensé que ce message serait aussi rencontré par quelqu'un de temps en temps. Je l'ai testé personnellement et ai très bien travaillé sur Froyo.
PackageManager pm = getPackageManager();
boolean frontCam, rearCam;
//It would be safer to use the constant PackageManager.FEATURE_CAMERA_FRONT
//but since it is not defined for Android 2.2, I substituted the literal value
frontCam = pm.hasSystemFeature("Android.hardware.camera.front");
rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
en 2.3 c'est possible. http://developer.Android.com/sdk/api_diff/9/changes/Android.hardware.Camera.html
Mais avant cela, Android sdk n’avait pas d’API générique pour trouver et utiliser le deuxième appareil photo frontal.
Je pense que vous pouvez parcourir les caméras disponibles sur le téléphone et consulter les informations de faisant face à caméra pour en trouver une (mais cette option est disponible uniquement à partir de l'API de niveau 9).
cette réponse pourrait vous aider: Comment puis-je ouvrir la "caméra frontale" sur la plate-forme Android?