PictureCallback.onPictureTaken nunca llamó a

Estoy escribiendo una aplicación que necesita imágenes tomadas con la cámara. El problema ocurre cuando trato de tomar una foto real. Aquí está el código que me está preocupando:

    final ShutterCallback shutterCallback = new ShutterCallback() {
        @Override
        public void onShutter() {
            Log.d(TAG, "onShutter");
        }
    };

    final PictureCallback callback = new PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            Log.d(TAG, "onPictureTaken - jpeg");
            try {
                //async task for storing the photo
                new SavePhotoTask(CameraView.this.ctx, data).execute();
            } catch (final SavePhotoException e) {
                //some exceptionhandling
            }
        }
    };
    this.camera = Camera.open();
    this.camera.setPreviewDisplay(surfaceHolder);
    final Camera.Parameters parameters = findBestParameters(w, h);
    this.camera.setParameters(parameters);
    this.camera.startPreview();
    Log.d(TAG, "takePicture now!");
    this.camera.takePicture(shutterCallback, null, callback);

En el emulador parece funcionar pero en mi teléfono (Motorola Defy - android 2.1).

El problema real: en el teléfono, nunca se llama a la devolución de llamada "onPictureTaken" nunca se llama. Shuttercallback se ejecuta pero el otro no (y lo intenté con raw en lugar de jpeg, lo mismo).

¿Alguien sabe este problema? Simplemente no veo dónde está la diferencia para el emulador en este momento. Aprecio tu ayuda

Respuestas a la pregunta(3)

Su respuesta a la pregunta