Estoy tratando de determinar el tipo MIME/Media de archivos almacenados en un dispositivo Android (en realidad un dispositivo virtual que estoy usando con el emulador). He encontrado este recurso Get the MIME Type from a File que recomienda el javax.activation.MimetypesFileTypeMap
, sin embargo cuando funciono el siguiente código consigo application/octet-stream
para todos los tipos de archivos:Java MimetypesFileTypeMap siempre devuelve application/octet-stream en el emulador de Android
MimetypesFileTypeMap map = new MimetypesFileTypeMap();
File dir = Environment.getExternalStorageDirectory();
File[] files = dir.listFiles();
String mimeType;
for(int i = 0; i < files.length; ++i) {
if(files[i].isDirectory() == false) {
mimeType = map.getContentType(files[i]);
if(mimeType.toLowerCase().equals("application/octet-stream")) {
Log.d("mytag",
String.format("Unable to determine the mime type of file %s.",
files[i].getName()));
}
}
}
He probado esto con los archivos que tengan las siguientes extensiones: jpg, txt, doc, xslx y pdf y todos devuelven lo mismo. ¿Hay algo que deba hacer para inicializar el mapa? ¿Esta biblioteca no puede encontrar la lista de tipos de mime compatibles en Android? ¿Hay una mejor manera de obtener el tipo de mimo de un archivo en Android?
estoy teniendo el mismo problema (androide no está involucrado), véase este enlace http://stackoverflow.com/questions/ 6308142/adding-mimetypes-to-mimetypesfiletypemap. Creo que tenemos que agregar un archivo reosurce con una lista completa de tipos de mime, aún no probado, sin embargo –