Les exemples et les tutoriels Android fonctionnaient bien et soudain, un jour, j’obtiens ceci: "Il semble que votre appareil ne supporte pas la caméra (ou il est verrouillé). L’application sera fermée". Aidez-nous à le réparer.
J'ai réinstallé opencv, importé à nouveau et fabriqué de nouveaux émulateurs, mais le problème persiste.
Accédez aux paramètres de votre appareil -> applications -> VOTRE APP -> Autorisations -> activer l'autorisation de l'appareil photo ..
Travaillé pour moi ..
Vérifiez l'autorisation de la caméra dans AndroidManifest.xml.
<uses-permission Android:name="Android.permission.CAMERA"/>
<uses-feature Android:name="Android.hardware.camera"/>
<uses-feature Android:name="Android.hardware.camera.autofocus"/>
<uses-feature Android:name="Android.hardware.camera.front"/>
<uses-feature Android:name="Android.hardware.camera.front.autofocus"/>
Cela fonctionne pour moi ..
Depuis le Android Docs :
Depuis Android 6.0 (API niveau 23), les utilisateurs accordent des autorisations à les applications lorsque l'application est en cours d'exécution, et non lors de son installation.
Cela signifie que sur Android 23 ou supérieur, outre le manifeste, vous devez également demander une autorisation au moment de l'exécution. Dans ce cas, accès à la caméra.
Pour ce faire, vous pouvez utiliser le code ci-dessous:
// First check Android version
if (MyVersion > Build.VERSION_CODES.Lollipop_MR1) {
//Check if permission is already granted
//thisActivity is your activity. (e.g.: MainActivity.this)
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
// Give first an explanation, if needed.
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.CAMERA)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CAMERA},
1);
}
}
}
Vous pouvez également gérer la réponse à la demande, comme décrit dans le docs .
J'espère que ça aide!
Je viens d'avoir ce problème et je l'ai résolu en tuant toutes les autres applications qui utilisaient l'appareil photo. Certains tutoriels précédents fonctionnaient toujours en arrière-plan.
Les exemples doivent fonctionner car ils utilisent JavaCamera. Je reçois ce problème quand j'ai essayé d'utiliser le natif. Il semble que le serveur natif ne fonctionne pas pour ervery phone. voir this .
Je dois ajouter que sur certains appareils, la caméra native openCV ne fonctionne pas du tout, bug 2359 .
Dans mon cas, le problème était
Mon application utilise Android Camera
dans une autre activité
Et une autre activité n'a pas été libérée le Camera
après l'avoir utilisée sur détruit (verrouillé)
Et après avoir relâché la Camera
sur une autre activité, cette boîte de dialogue ne s'affichera plus.
Donc généralement pour résoudre ce problème