7
votes

Caméra.open () ne fonctionne pas Android

J'essaie d'écrire une application de caméra personnalisée à Android. Pour cela, j'ai besoin d'ouvrir l'application de la caméra.

Pour cela, je suis en train de suivre le code ..

caméra caméra = caméra.open ();

mais montre une erreur comme

méthode ouverte non définie pour la caméra de type

J'ai fait comme suggéré ici http: // développeur. android.com/reference/android/hardware/camera.html#open(int)

Toute suggestion ..

merci, Ravindra Gupta


0 commentaires

7 Réponses :


24
votes

Vous avez probablement importé la mauvaise classe de caméra en haut de votre fichier source, qui est android.graphics.camera .

Vous avez besoin android.hardware.camera à la place.

merci


1 commentaires

merci je mets importer android.hardware.camera et cela a fonctionné après cela.



3
votes

Je pense que vous n'avez pas ajouté la permission de la caméra. Voir ci-dessous - vous devez ajouter ceci dans votre manifeste; xxx


0 commentaires

1
votes

Vérifiez vos importations. J'ai eu un problème similaire et l'objet de la caméra Eclipse choisit pour moi était: Importer android.graphics.camera; devrait être: Importer android.hardware.camera;


0 commentaires

1
votes

Si rien de ce qui précède ne fonctionne: Vérifiez si vous demandez la permission de la caméra manuellement. Les autorisations d'Android plus récentes (API> 23) sont définies au moment de l'exécution, pas de temps d'installation. Voir: https://developer.android.com/training/permissions/requesting.html < / a>


0 commentaires

0
votes

Veuillez créer une variable comme ceci: xxx

puis essayez la méthode ouverte: xxx

// fonctionnent sur mon Android Studio


0 commentaires

0
votes

2 commentaires

Pourriez-vous élargir votre réponse? Le lien lui-même n'est pas considéré comme une bonne réponse.


Dans les anciennes versions Android, vous pouvez juste dans Manifest Ajoutez la permission de la caméra, puis il fonctionne ... Maintenant, vous devez demander la permission dans l'exécution et afficher la dialogue pour l'utilisateur, puis vous pouvez faire une caméra de caméra = caméra.open (); dans la méthode de remplacement sur l'onactivitéResult. alors ça fonctionnera parfaitement



0
votes

J'ai fait face à de nombreux problèmes lors de l'intégration de la caméra natif / caméra2 API. Le code était volumineux. Pour éviter les problèmes de complexité et de compatibilité, Google fournit une nouvelle API Camerax dans une nouvelle bibliothèque Android Jetpack. Voir la documentation Google fournie https://developer.android.com/training/camerax . Il y a aussi une bibliothèque basée sur la kotlin que j'ai trouvée sur github https://github.com/robertlevonyan/cameraxdemo . Vous pouvez obtenir plus de compensation avec moins de code.


0 commentaires