2011-05-01 21 views
1


不要說這是一個重複的問題,因爲我已經讀了他們所有的兩天。 而非他們真的提供了一個有用的答案。android如何「真的」得到MIME類型的SD卡文件

我在SD卡上的文件夾中有許多不同的文件。 想要根據apk,txt,mp3,avi,jpg打開正確的應用程序或顯示選擇器對話框。 爲此,我需要動態MIME類型。我試過了: manageQuery經常返回null遊標。
MimeTypeMap無法解決名爲.3gp文件,並認爲它是一個.TXT
URLConnection.guessContentTypeFromName不要在所有的工作

想我必須使用MediaFile.java和建立我own..file.equals(」。 mp3「)

addFileType(」MP3「,FILE_TYPE_MP3,」audio/mpeg「);
addFileType(「M4A」,FILE_TYPE_M4A,「audio/mp4」);
addFileType(「WAV」,FILE_TYPE_WAV,「audio/x-wav」);
addFileType(「AMR」,FILE_TYPE_AMR,「audio/amr」);

是這樣做的嗎?

+0

http://stackoverflow.com/questions/8589645/how-to-detemine-mime-type-of-file-in-android 關注此鏈接 – fargath 2012-01-24 09:26:35

回答

2

這個問題將永遠是雙重的。首先,Android決定擁有內容:// uri意味着我們必須處理該問題並使用file:// uri。其次,沒有啞劇標識符類將覆蓋整個地面。

所以,如果你只是處理一些奇怪的MIME類型,你必須自己測試它們,如果mimetypemap或其他標識符類不起作用。如果您正在使用文件管理器類型的應用程序,那麼您可能會發現創建一個可以通過文件uri進行檢查然後通過內容uri進行檢查然後進行自己的分析的類會更容易。通過這種方式,您可以隨着時間的推移調整結果,並且大部分可以克服上述兩個基本問題。

我確定原始的海報發現了這一點。但也許這會幫助未來的求職者。我認爲獨立開發人員將文件處理重新推向規範的posix文件是非常重要的:// uri。我們應該儘可能多地處理Google引發的內容URI。這是一個可憐的,錯誤動機的選擇。

2

MimeTypeMap是最好的你可以得到,然後爲其餘的保持建立在手動mime類型。
我想知道3gp文件是如何解釋爲TXT?對我來說,它給出了一個MIME類型video/3gp
然後,您可以確定它是否視頻或音頻,並相應地播放它。

但是MimeTypeMap會減少你的大部分努力,這是正確的選擇。