Comment détecter le nombre de caméras disponibles sur un appareil Android? Et aussi si l'appareil dispose d'une caméra frontale comment l'utiliser?

Comment détecter le nombre de caméras disponibles sur un appareil Android? Et aussi si l'appareil dispose d'une caméra frontale comment l'utiliser?

  • Servir un site Web local via bluetooth à un téléphone portable sans utiliser Internet
  • Phonegap Android internet ne fonctionne pas
  • Android ViewPager setCurrentItem ne fonctionne pas après onResume
  • Comment exécuter une tâche asynchrone pour chaque x minutes dans Android?
  • Android Télécharger plusieurs fichiers et afficher les progrès dans ListView
  • Google Cloud Messaging Sample
  • 7 Solutions collect form web for “Comment détecter le nombre de caméras disponibles sur un appareil Android? Et aussi si l'appareil dispose d'une caméra frontale comment l'utiliser?”

    Ce que je suggère est similaire à la réponse de doc_180, mais devrait être capable de détecter les caméras avant et arrière même pour Froyo, mais si je ne me trompe pas, Froyo n'a jamais pris en charge les caméras orientées vers l'avant, de sorte que vous obtiendrez toujours un faux Réponse pour frontCam sur Froyo.

     PackageManager pm = getPackageManager(); boolean frontCam, rearCam; //Must have a targetSdk >= 9 defined in the AndroidManifest frontCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT); rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA); 

    EDIT: Je me suis rendu compte que c'est vraiment une question très ancienne. Oh bien, j'espère qu'il aide quelqu'un dans le futur.

    Utilisez packagemanager pour vérifier si l'appareil prend en charge l'intention. Dans ce cas Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE );

     public static boolean isIntentAvailable(Context context, String action) { final PackageManager packageManager = context.getPackageManager(); final Intent intent = new Intent(action); List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0; } 
      CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < numberOfCameras; i++) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { } } 

    La façon la plus rapide pour laquelle j'ai trouvé de vérifier si une caméra (de retour) existe pour vérifier si Camera.open () renvoie null.

     Camera cam = Camera.open(); if(null == cam){ //no camera exists } 

    Cela devrait également être disponible pour les versions antérieures d'Android.

    Vous pouvez utiliser cette méthode statique si vous voulez juste savoir combien de caméras sont: Camera.getNumberOfCameras (); (Api 9)

     /** Check if this device has a camera */ private boolean checkCameraHardware(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; } } 

    Essayez cela, cela a fonctionné pour moi dans un Moto RAZR HD:

     public static Camera open (int cameraId) 

    Exemple d'utilisation:

     mCamera = Camera.open(1); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.