2012-04-21 16 views
5

Estoy desarrollando una aplicación de explorador de archivos en Android. ¿Cómo manejar archivos con extensiones desconocidas? Cuando intento abrir ese tipo de archivo, se lanza la excepción ActivityNotFound. Pero quiero que el sistema muestre la lista de aplicaciones para que podamos elegir manualmente una aplicación para abrirla. ¿Alguien me puede ayudar aquí?Android: Cómo abrir un tipo de archivo desconocido

Estoy comenzando la actividad para abrir el archivo vinculando el archivo y su extensión a la intención.

Intent intent = new Intent(Intent.ACTION_VIEW); 
MimeTypeMap mime = MimeTypeMap.getSingleton(); 
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1); 
String type = mime.getMimeTypeFromExtension(ext); 
intent.setDataAndType(Uri.fromFile(new File(file.toString())), type); 
try 
{ 
    startActivity(intent); 
} 
catch(Exception e){} 

Respuesta

4

ActivityNotFound se lanza cuando no hay ninguna aplicación registrada que pueda manejar un tipo de archivo específico. Esto significa que la lista de aplicaciones que desea mostrar estará vacía.

La forma más adecuada de tratar con la situación es detectar la excepción ActivityNotFound y mostrar una tostada notificando al usuario que no hay aplicaciones apropiadas para abrir el archivo.

Todos los navegadores de Android proceden de esta manera.

+0

Director de Asus archivo (4.4) dan un genérico "Abrir como" lista con cuatro elementos que representan categorías genéricas (texto, imagen, audio, video). Seleccionar uno le dará una lista de aplicaciones asociadas para abrir el archivo (al igual que Windows). – samosaris

Cuestiones relacionadas