Cuando llamo mCamera = Camera.open()
devuelve null, lo que podría estar causando esto? Mi dispositivo es el Nexus 7.
Ya tengo los permisos establecidos en mi AndroidManifest.xml
:
<uses-permission android:name="android.permission.CAMERA" />
- Trate de este
- De nuevo,
camera = Camera.open();
devuelve null. - Se trató de que ejemplo?
- Sí…soy un poco de un idiota, aunque…la API lee
Creates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null.
…la Nexus 7 no tiene una parte trasera frente a la cámara, sólo un delantero. - Sí. Antes, al ver que el dispositivo no sabía esto. Sólo sé que yo sé de esto a través de el documento Intentar abrir la cámara secundaria. Y, una vez trate de este
Descubierto,
Usted necesita llamar a
Camera.open(0)
.ESTO SÓLO ES VÁLIDO Y funciona EN EL NEXUS 7 el dispositivo, ya que sólo tiene una cámara, por lo que sólo es útil si la orientación que solo dispositivo.
0
es una codificado número. En segundo lugar, como @Praveen mencionado, debe utilizar getNumberOfCameras() y abrir(int).0
es un valor codificado. Me gustaría evitar de uso. Usted puede declarar mi opinión está mal, le toca a usted.open(0)
es perfectamente legítimo. El oficial doc dice:cameraId
int
: el hardware de la cámara de acceso, entre 0 y getNumberOfCameras()-1. Así, si el manifiesto de la aplicación requiere «de android.de hardware.de la cámara», lo que, a continuación, cameraId=0 puede ser utilizado.Para aquellos que la prueba de una aplicación en Android 6.0+, asegúrese de que se han implementado Tiempo De Ejecución De Permiso.
Porque simple de permisos en el archivo AndroidManifest no es suficiente.
He resuelto este problema siguiendo los pasos siguientes.
Abrir el «AVD Manager» y seleccione el dispositivo virtual está utilizando
Haga clic en el botón «Editar»

En el «Hardware» de la sección, seleccione «Nuevo» y agregar «Configura la cámara hacia atrás» y haga clic en Aceptar.
En la lista desplegable situada junto a la entrada, seleccione «webcam0» o la correspondiente a la cámara que desea utilizar

Detener el AVD y reiniciar de nuevo.