puede - Cómo abrir un archivo en Android a través de una intención
no se puede abrir el archivo android (3)
¿Qué tipo de archivo adjunto está en su código? Tal vez devuelve el tipo de mimo mal?
Este código funciona para mí:
File file = new File("EXAMPLE.JPG");
// Just example, you should parse file name for extension
String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(".JPG");
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), mime);
startActivityForResult(intent, 10);
¿Cómo puedo abrir un archivo que ha sido almacenado previamente en el sistema de archivos "privat"? El archivo está siendo descargado por un servicio web y debe almacenarse en archivos locales. Recibí un error "extraño" al intentar abrir el archivo a través de un Intent (Action_View). Aunque el archivo está presente en el sistema de archivos (vio el archivo en el explorador de archivos en el emulador / eclipse) no se mostrará en la actividad de la galería de llamadas que se inicia. En lugar de la imagen, la galería muestra una pantalla negra sin contenido (excepto la barra de acción). Lo mismo ocurre cuando se intenta abrir un archivo pdf / movie / mp3 a través de este método (pdf dice, por ejemplo, que el archivo está dañado).
Por cierto: los datos que se han almacenado en el fs local son válidos (no están dañados), descargué los archivos del depurador (mediante el método de extracción) y los archivos se pueden abrir en mi estación de trabajo ...
public void onAttachment(Context context, Attachment attachment) {
try {
//Attachment is a structured data object that contains of a byte[], filename and mimetype (like image/jpeg)
FileOutputStream fos = FileOutputStream fos = context.openFileOutput(attachment.getAttachmentFileName(), Context.MODE_PRIVATE);
fos.write(attachment.getBinary());
fos.flush();
fos.close();
File f = context.getFileStreamPath(attachment.getAttachmentFileName());
Uri uri = Uri.fromFile(f);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,attachment.getAttachmentMimetype());
context.startActivity(intent);
} catch (IOException e) {
e.printStackTrace();
}
}
Al configurar la ubicación en " openFileOutput("fileName", Activity.MODE_WORLD_READABLE)
" funcionará. Otras aplicaciones no pueden leer los datos (incluso para verlos) almacenados cuando se configura en " Context.MODE_PRIVATE
"
ver otro post en
No puedes abrir archivos que no estén en la sdcard de esa manera. Tendrá que copiar el archivo a la tarjeta sd y luego abrirlo.