¿Cómo abro un archivo con el programa asociado predeterminado en Java? (por ejemplo, un archivo de película)Cómo abrir un archivo con el programa asociado predeterminado
Respuesta
Puede usar Desktop.getDesktop().open(File file)
. Consulte la siguiente pregunta para conocer otras opciones: "[Java] How to open user system preffered editor for given file?"
SwingHacks tiene una solución para las versiones anteriores de Java.
Creo que usaron el objeto Runtime para ejecutar el comando 'start' en Windows y hay un comando similar en el mac.
Aquí van:
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
crear una clase diferente dentro del paquete:
// code to open default application present in the handset
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);
}
}
o puede cambiar la condición ** if ** como esta –
if (url.getPath(). EndsWith (". Jpg") || url.getPath(). EndsWith (". Jpeg") || url.getPath() .endsWith (". png")) { intent.setDataAndType (uri, "image/*"); } –
Esto solo funciona en Android. No es una solución para todas las plataformas. – andred
- 1. Applescript: ¿Cómo abrir un archivo con el programa predeterminado?
- 2. ¿Cómo se puede abrir un archivo con el programa asociado a su extensión de archivo?
- 3. Abrir un archivo de Excel utilizando el programa predeterminado
- 4. Abrir con ... un programa Java
- 5. Cómo asociar una extensión de archivo a un programa sin hacerlo el programa predeterminado
- 6. ¿Cómo obtengo el ícono asociado con un tipo de archivo?
- 7. Iniciar un programa predeterminado en OSX mediante programación
- 8. ¿Abrir dir y selecciona el archivo asociado con el buffer anterior?
- 9. ¿Cómo configuro TortoiseHg para abrir un archivo en el programa correcto según su extensión?
- 10. ¿Qué es una forma independiente de sistema operativo para abrir archivos con el programa asociado desde C++?
- 11. Abrir archivo con asociación
- 12. Cómo abrir un archivo empaquetado con WinRT
- 13. ¿Cómo abrir el navegador predeterminado de iPhone?
- 14. ¿Cómo abrir un archivo con la aplicación predeterminada en cmd?
- 15. ¿Hay un #define asociado con el SubSystem
- 16. ¿Cómo puedo abrir un archivo HTML en el navegador predeterminado desde una aplicación Java Swing?
- 17. ¿Cómo abrir un archivo "nul"?
- 18. ¿Un archivo en git asociado con el repositorio, bajo control de revisión, pero no asociado con ninguna rama en particular?
- 19. esquema asociado (por ejemplo: cms. //) a un programa de Windows
- 20. Cómo abrir el archivo .hprof
- 21. Cómo abrir un archivo .a
- 22. ¿Cómo abro un archivo usando el controlador predeterminado del shell?
- 23. Abrir y leer un archivo con askopenfilename
- 24. Abrir un archivo de texto con WPF
- 25. Compilar un archivo Java ... con un programa Java
- 26. Abrir un programa con python minimizado u oculto
- 27. LinkLabel ... abrir en el navegador web predeterminado?
- 28. ¿Cómo reproduciría un archivo .wav con un programa de Mathematica?
- 29. cómo abrir el teclado predeterminado de iphone con un botón, haga clic en
- 30. C# CF: Cómo abrir una extensión de archivo específica con mi programa
sigo recibiendo esta excepción cuando se trata de un archivo de película, pero trabajar con un archivo de imagen (BMP) : java.io.IOException: no se pudo abrir el archivo:/D: /vidz/2006-04-02.wmv. Mensaje de error: el parámetro es incorrecto. –
¿Puede proporcionar su código en la pregunta? Además, ¿qué versión de sistema operativo y Java está usando? –
Lo que no entiendo es que funciona con imágenes ... de todos modos estoy usando Java 1.6.0.06 y aquí está el código: File file = new File (MoviePlay.getInstance(). GetBasePath(), movieFile.getPath ()); try {Desktop.getDesktop(). Open (archivo); } catch (ex) {...} –