2015-10-22 7 views
22

Si è verificato un errore con la mia app eseguita in Nexus5 (Android6.0).Android 6.0 RuntimeException: impossibile connettersi al servizio della fotocamera

l'errore è stato

java.lang.RuntimeException: non connettersi al servizio di fotocamera

avevo aggiunto il permesso al AndroidManifest.xml.

Ma l'app è OK con un altro telefono (Android5.1), e genomotion AVD (Android 4.0).

Il codice chiave è sotto

@Override 
public void onResume() { 
    super.onResume(); 
    try { 
     mCamera = Camera.open(); 
    }catch (Exception e){ 
     Log.e(TAG,"open camera failed",e); 
    } 

} 
+2

controllo questo http://stackoverflow.com/questions/33030933/android-6-0-open- failed-eacces-permission-negato? rq = 1 –

+0

Aggiungi l'intero Stacktrace. Immagino tu abbia anche ottenuto un 'SecurityException', che è un indicatore del fatto che non hai richiesto l'autorizzazione della telecamera in fase di runtime. – reVerse

risposta

25

scrivere nel tuo gradle.build targetSdkVersion 22. Si tratta di una soluzione temporanea, ma il lavoro.

+1

Mi sono imbattuto nello stesso problema e questo ha risolto il mio problema, grazie! – BVB

+0

Questa era anche la soluzione per me. Molto strano! Quale potrebbe essere la causa? –

+0

Molto strano e questo lo risolve. –

8

Questo accade perché, in Android 6.0 il modello di autorizzazione è diverso. Devi implementare il nuovo modello di autorizzazione che richiede l'autorizzazione in fase di esecuzione. Anche se non lo chiedi, puoi abilitarlo manualmente nelle impostazioni dell'app del telefono, ma non è un lavoro da svolgere quando pubblichi la tua app nel Play Store. Here è un articolo su come ottenere Run permessi di tempo

Inoltre è possibile controllare la risposta di Nick here per ottenere più autorizzazioni

4

da Android 6.0 è possibile gestire il tempo permesso di applicazione daresti o permesso non specifico per un applicazione. Nel tuo caso, se non hai abilitato l'autorizzazione della fotocamera per la tua app, potrebbero verificarsi questi problemi.

Quindi, è necessario abilitare l'autorizzazione dall'autorizzazione settings->apps->your_app->enable camera.

+0

Hai salvato la mia giornata!Ma sembra che dobbiamo chiedere esplicitamente le autorizzazioni come @Amalan Dhananjayan altrimenti l'utente finale non dovrebbe conoscere alcune cose complicate come impostazioni-> app-> tuo_app-> attiva la fotocamera – Houssem

+1

@Houssem Sì, devi gestire questo a livello di programmazione. https://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en un buon tutorial per farlo. – 0xalihn