2011-05-01 72 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会减少你的大部分努力,这是正确的选择。