El siguiente código que podría ayudar
código
para el archivo
escribir el código para obtener la url del archivo en función principal
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
código para abrir la aplicación por defecto presente en el auricular crear otra clase
public class FileOpen {
public static void openFile(Context context, File url) throws IOException {
// Create URI
File file=url;
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
// Check what kind of file you are trying to open, by comparing the url with extensions.
// When the if condition is matched, plugin sets the correct intent (mime) type,
// so Android knew what application to use to open the file
if (url.toString().contains(".doc") || url.toString().contains(".docx")) {
// Word document
intent.setDataAndType(uri, "application/msword");
} else if(url.toString().contains(".pdf")) {
// PDF file
intent.setDataAndType(uri, "application/pdf");
} else if(url.toString().contains(".ppt") || url.toString().contains(".pptx")) {
// Powerpoint file
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} else if(url.toString().contains(".xls") || url.toString().contains(".xlsx")) {
// Excel file
intent.setDataAndType(uri, "application/vnd.ms-excel");
} else if(url.toString().contains(".zip") || url.toString().contains(".rar")) {
// WAV audio file
intent.setDataAndType(uri, "application/x-wav");
} else if(url.toString().contains(".rtf")) {
// RTF file
intent.setDataAndType(uri, "application/rtf");
} else if(url.toString().contains(".wav") || url.toString().contains(".mp3")) {
// WAV audio file
intent.setDataAndType(uri, "audio/x-wav");
} else if(url.toString().contains(".gif")) {
// GIF file
intent.setDataAndType(uri, "image/gif");
} else if(url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) {
// JPG file
intent.setDataAndType(uri, "image/jpeg");
} else if(url.toString().contains(".txt")) {
// Text file
intent.setDataAndType(uri, "text/plain");
} else if(url.toString().contains(".3gp") || url.toString().contains(".mpg") || url.toString().contains(".mpeg") || url.toString().contains(".mpe") || url.toString().contains(".mp4") || url.toString().contains(".avi")) {
// Video files
intent.setDataAndType(uri, "video/*");
} else {
//if you want you can also define the intent type for any other file
//additionally use else clause below, to manage other unknown extensions
//in this case, Android will show all applications installed on the device
//so you can choose which application to use
intent.setDataAndType(uri, "*/*");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
also u can write this if condition
*** if(url.getPath().endsWith(".jpg") || url.getPath().endsWith(".jpeg")|| url.getPath().endsWith(".png")***
{
intent.setDataAndType(uri,"image/*");
}*
Si tengo un byte [] del archivo, este método seguirá funcionando si no quiero sa ¿Lo tienes en el disco? –
@Tom Fobear: No tiene más remedio que guardarlo en el disco, en un lugar que pueda leer la otra aplicación. Eso significa almacenarlo en un almacenamiento externo, o almacenarlo como un archivo 'MODE_WORLD_READABLE' en su tienda de archivos local de la aplicación, o almacenarlo como un archivo normal (denegar todo) en la tienda de archivos local de la aplicación y usar un proveedor de contenido para que esté disponible para otras aplicaciones. – CommonsWare
Se produjo un problema. En mi dispositivo, había varias aplicaciones que afirmaban que eran compatibles con mi intención al usar el método PackageManager. Descubrí que los archivos se estaban guardando correctamente. Por ejemplo, una vez que descargué adobe reader pude ver los pdfs que inicié desde mi actividad. ¿Existe un método más legítimo para buscar buenas aplicaciones además de las opciones de hardcoding en? Gracias. –