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.
y los problemas aún no se solucionan .. – Arseniy
@muzhig La mayoría de los errores son fijos, sin embargo, los operadores no permiten que los OEM implementen las actualizaciones. – Reno