Java MimetypesFileTypeMap всегда возвращает приложение / поток октетов на эмуляторе Android

Я пытаюсь определить тип MIME / мультимедиа файлов, хранящихся на устройстве Android (фактически виртуальном устройстве, которое я использую с эмулятором). Я нашел этот ресурс Получить тип MIME из файла , который рекомендует javax.activation.MimetypesFileTypeMap , однако, когда я запускаю следующий код, я получаю application / octet-stream для всех типов файлов:

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()));  
        }   
    }  
}  

Я тестировал это с файлами со следующими расширениями: jpg, txt, doc, xslx и pdf, и все они возвращают одно и то же. Что мне нужно сделать, чтобы инициализировать карту? Может ли эта библиотека не найти список поддерживаемых mime-типов на Android? Есть ли лучший способ получить MIME-тип файла на Android?

9
задан Octavian A. Damiean 31 January 2011 в 20:22
поделиться