varios studio shouldshowrequestpermissionrationale seguridad requestpermissions permisos pedir onrequestpermissionsresult manejo example checkselfpermission camara java android android-camera android-6.0-marshmallow

java - studio - Android 6.0 RuntimeException: no se puede conectar al servicio de cámara



seguridad y permisos en android studio (5)

Abra Configuración -> Aplicaciones -> haga clic en su aplicación -> Permisos -> abra permisos de cámara.
puede ver: http://developer.android.com/training/permissions/requesting.html

Se produjo un error con mi aplicación que se ejecutó en Nexus5 (Android6.0).

El error fue

java.lang.RuntimeException: no se puede conectar al servicio de cámara

Había añadido el permiso al AndroidManifest.xml.

Pero la aplicación está bien con otro teléfono (Android5.1) y genymotion AVD (Android 4.0).

El código clave está debajo

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



Desde Android 6.0 puede manejar el tiempo de permiso de la aplicación que dará o no un permiso específico para una aplicación. En su caso, si no habilitó el permiso de la cámara para su aplicación, pueden surgir estos problemas.

Por lo tanto, debe habilitar el permiso desde la settings->apps->your_app->enable camera permiso de la settings->apps->your_app->enable camera .


Escriba en su gradle.build targetSdkVersion 22. Es una solución temporal pero funciona.


Esto sucede porque, en Android 6.0, el modelo de permiso es diferente. Debe implementar el nuevo modelo de permiso que solicita el permiso en tiempo de ejecución. Incluso si no lo pides, puedes habilitarlo manualmente en la configuración de la aplicación del teléfono, pero eso no es un trabajo simple cuando publicas tu aplicación en Play Store. Here hay un artículo sobre cómo obtener permisos de tiempo de ejecución

También puedes consultar la respuesta de Nick here para obtener múltiples permisos.