Pregunta

Estamos descargando un archivo de un servidor y escribiéndolo en carpeta en SDCARD. Tan pronto como termina la escritura, realizamos un escaneo de medios en esa carpeta. Cuando el usuario intenta abrir el archivo para ver, intentamos aprovechar el mecanismo de intención de Android y generar una intención de la siguiente manera:

Intent myIntent = new Intent(Intent.ACTION_VIEW,Uri.fromFile(tempFile));
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/*
myIntent.setType(MIME_TYPE);
startActivity(Intent.createChooser(myIntent, "Open file using..."));

En el emulador, la aplicación de la cámara se inicia para esta intención, pero la aplicación se bloquea con NPE. Y en Motorola Milestone, estamos obteniendo un tostado que dice: "No hay imagen para mostrar". Tenga en cuenta que la foto se muestra realmente en la galería de medios de emulador y teléfono tan pronto como finaliza el escaneo.

No estoy seguro de lo que se ha perdido aquí; por favor ayuda.

¿Fue útil?

Solución

extrañamente, cambiando de

Intent myIntent = new Intent(Intent.ACTION_VIEW,Uri.fromFile(tempFile));
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/*
myIntent.setType(MIME_TYPE);

a

Intent myIntent = new Intent(Intent.ACTION_VIEW);
// MIME_TYPE could be either of: image/*, video/*, audio/*, text/*
myIntent.setDataAndType(Uri.fromFile(tempFile), MIME_TYPE);

¡trabajó!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top