2011-06-30 10 views
5

Problema enfrentado: el comportamiento de la intención de ACTION_IMAGE_CAPTURE depende del fabricante del hardware.Una hermosa forma de solucionar errores con ACTION_IMAGE_CAPTURE

creo, la mejor manera de conseguir la foto de la cámara que se inserta en la galería de fotos debe ser algo como siguiente

y luego uri en onActivityResult:

switch (requestCode) { 
    case CAPTURE_IMAGE_REQUEST: { 
     if(resultCode == Activity.RESULT_OK) { 
       Uri uri = intent.getData();// content uri of photo in media gallery 
       //do something with this 
     } 
     break; 
    } 

Pero veo, que este no funciona en muchos dispositivos; Por otra parte, he encontrado varios escenarios diferentes de comportamiento de aplicación de la cámara:

  • algunos dispositivos tienen bug con este evento, así que no hay manera de conseguir fotos fullsized, y se puede obtener 512px de ancho de fotos usando el archivo tmp en el directorio público sólo
  • algunos dispositivos (incluido el mío) insertan la foto tomada en la galería, pero no devuelve Uri. (getData() devuelve nulo, los extras de intención solo tienen la clave booleana 'especificar-datos', valor = verdadero) Si trato de obtener una foto a través del archivo temporal público, la foto se insertará en galería y archivo de temp.
  • algunos dispositivos no inserte toman fotos a la galería - y tengo que hacerlo manualmente
  • No sé, pero no puede haber otra diferente scenarious

Entonces, ¿hay mejores prácticas en la gestión de este tipo de problemas para cubrir una amplia gama de dispositivos y fabricantes?

En este caso, necesito tomar una foto de la cámara, insertarla en la galería y luego obtener una foto de la galería.

Respuesta

0

A parte de esto ya ha sido respondida:

No creo que deba buscar otros casos. Los OEM de Google y Android controlan esos problemas, así que infórmenos y, con suerte, serán resueltos.

+2

y los problemas aún no se solucionan .. – Arseniy

+1

@muzhig La mayoría de los errores son fijos, sin embargo, los operadores no permiten que los OEM implementen las actualizaciones. – Reno

Cuestiones relacionadas