我想確定存儲在Android設備(實際上是我用模擬器使用的虛擬設備)上的文件的MIME /媒體類型。我發現這個資源Get the MIME Type from a File其建議javax.activation.MimetypesFileTypeMap
,但是當我運行下面的代碼我得到application/octet-stream
所有文件類型:Java MimetypesFileTypeMap總是返回在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()));
}
}
}
我有具有以下擴展名的文件進行測試這樣的:JPG,TXT,DOC,XSLX和pdf,他們都返回相同的東西。有什麼我必須做的初始化地圖?這個庫能不能在Android上找到支持的MIME類型列表?有沒有更好的方式來獲取Android上的MIME類型的文件?
我遇到了同樣的問題(Android是不參與),看到這個鏈接http://stackoverflow.com/questions/ 6308142 /添加-mimetypes-to-mimetypesfiletypemap。我認爲我們需要添加一個帶有mime類型完整列表的reosurce文件,但還沒有嘗試過 – 2012-01-26 09:50:49