2011-09-13 37 views
11

Estoy desarrollando un servicio, que se ejecuta en segundo plano, que carga con éxito imágenes y datos a la web.Cómo usar la cámara para tomar fotos en segundo plano ¿Servicio en Android?

Ahora quiero subir una imagen tomada por la cámara.

¿Es posible utilizar la cámara en un servicio en segundo plano sin vista previa en Android 2.2?

me encontré con varios contrastants respuestas en la web ...

¿Cómo puedo hacerlo?

Respuesta

9

Puede tomar fotografías sin una vista previa con una vista ficticia.

como:

SurfaceView view = new SurfaceView(this); 
c.setPreviewDisplay(view.getHolder()); 
c.startPreview(); 
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback); 
+2

Esto no funciona en todos los dispositivos, como se indica aquí: http://stackoverflow.com/a/5384913/318870 –

+1

lo que es c, shutterCallback y todas las variables..por favor proporcione el código completo – jyomin

+2

Este código no es correcto. Necesitaba agregar 'view' al' WindowManager'. También necesitaba agregar una devolución de llamada a 'view.getHolder()' y luego en 'surfaceCreated' establecer la vista previa, iniciar la vista previa y tomar la foto. – Sam

1

No es posible sin la vista previa/vista de superficie.

+0

Es cierto, pero todavía se puede utilizar trucos como una vista previa transparente o una vista previa de 1x1. Además, en algunos teléfonos, aparentemente puede usar un 'TextTexture' o' SurfaceView' ficticio que no se muestra. – Sam

+0

Funciona sin Surfaceview en algunos dispositivos (como My note 2) pero no funciona en todos los dispositivos. Por lo tanto, es imprescindible usar SurfaceView. – TheOnlyAnil

Cuestiones relacionadas