web-dev-qa-db-fra.com

Il semble que votre appareil ne supporte pas la caméra (ou il est verrouillé)

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.

16
SBM

Accédez aux paramètres de votre appareil -> applications -> VOTRE APP -> Autorisations -> activer l'autorisation de l'appareil photo ..

Travaillé pour moi ..

29
orimen

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 ..

19
Jitesh Dalsaniya

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!

10
Geraldo Neto

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.

2
Ben Trengrove

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 .

0
ahmed_khan_89

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

  1. Vérifier les autorisations de CAMERA
  2. Vérifiez que CAMERA n’est pas verrouillé (en le relâchant après l’utilisation dans d’autres activités)
0
ahmednabil88