2010-01-10 31 views

回答

4
  1. 在資產文件夾中包含一些mime.types文件(例如從/etc/mime.types中)。
  2. 在您的構建路徑中包含activation.jar(來自JAF)。
  3. 使用這樣的事情:

    try { 
        MimetypesFileTypeMap mftm = 
         new MimetypesFileTypeMap(getAssets().open("mime.types")); 
        FileTypeMap.setDefaultFileTypeMap(mftm); 
    } catch (FileNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    
  4. 然後使用FileDataSource.getContentType()獲得的文件類型。

+0

好的。但我用的是android.webkit.MimeTypeMap – fixxer 2010-01-13 14:37:22

+0

什麼是mime.types。這是一個XML文件,我們自己爲每個文件擴展名定義類型? – Vamsi 2010-12-16 08:38:12

+0

它不是XML,它只是純文本,你可以在許多Linux/Unix/etc上找到它。包含如下行:「application/andrew-inset \t \t \t ez」 – 2010-12-17 06:46:47

0

常見的方式是由它們的擴展而已,或者你可以解析頭,但它應該不會太大慢,更復雜爲您的應用程序。

2
public static String getMimeType(String fileUrl) { 
    String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl); 
    final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); 
    return (mimeType != null) ? mimeType : "unknown"; 
} 
+0

這種方法很好,我測試過了。它工作正常。 – kangear 2015-09-29 18:53:33