Estoy usando la API de la cámara en Android y conseguí que mi código funcione en varias plataformas, incluidas Samsung Galaxies y HTC Desire. Hasta ahora solo estoy experimentando un problema en el HTC Desire Z, que es intermitente.Retrollamada de autoenfoque de la cámara no está ocurriendo
en mi código Voy a llamar a las siguientes instrucciones
camera.startPreview();
camera.autoFocus(autoFocusCallback);
donde ya ha creado la clase autoFocusCallback requerido. Me gustaría volver a insistir en que este código funciona en los teléfonos, incluido el que tengo problemas, así que no sigas escrutando el código. :) Después de que se llama la devolución de llamada, mi código luego toma la fotografía, pero esa parte es irrelevante por ahora.
El problema intermitente es que para una cierta imagen aleatoria (ocurre una de 20-100 veces), la devolución de llamada no ocurre. He verificado con mi propio Log.i() que este es el último comando realizado (es decir, el código no llega a la devolución de llamada). La depuración también muestra que no se informan errores.
Sólo para fijar su mente en la facilidad, mi devolución de llamada es como la siguiente
AutoFocusCallback autoFocusCallback = new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
Log.i("tag","this ran");
...
...
}
};
Los resultados LogCat para una carrera exitosa se ve algo como esto
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:50.564: DEBUG/QualcommCameraHardware(1223): af start (fd 49)
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): native_set_afmode: ctrlCmd.status == 0
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): af done: 1
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): runAutoFocus X
07-12 10:17:51.184: DEBUG/QualcommCameraHardware(1223): takePicture(479)
Pero la carrera problemático es como esto
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): startPreview X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): autoFocus X
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): runAutoFocus E
07-12 10:17:52.194: DEBUG/QualcommCameraHardware(1223): af start (fd 49)
y luego se cuelga.
Me gustaría saber si alguien tiene alguna idea sobre este problema, o si ha experimentado algo similar? Solo he logrado encontrar un hilo en la red con problemas similares, aquí está http://groups.google.com/group/android-developers/browse_thread/thread/75ecb8db0ae02bdb
Excelente respuesta !. ¡¡Gracias!! – superUser