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);
}
}
Agregue el permiso de la cámara antes de abrir la cámara:
siga el enlace para agregar permisos: https://developer.android.com/training/permissions/requesting.html
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.