问题描述
||
你好
不要说这是重复的问题,因为我已经读了两天了。
他们中没有一个真正提供有用的答案。
我在sdcard上的文件夹中有许多不同的文件。
想要根据apk,txt,mp3,avi,jpg打开正确的应用程序,或显示选择对话框。
因此,我需要即时的mime类型。
我试过了 :
manageQuery通常返回null游标。
MimeTypeMap无法解析.3gp文件,并认为其是.txt
URLConnection.guessContentTypeFromName根本不起作用
在想我必须使用MediaFile.java并构建自己的..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 \”);
那是这样做的方式吗?
解决方法
问题将始终是双重的。首先,Android决定使用content:// uri意味着我们必须处理该问题,并使用file:// uri。其次,没有任何mime标识符类可以覆盖整个领域。
因此,如果您只处理一些奇怪的mime类型,则必须自己测试mimetypemap或其他标识符类是否起作用。如果您像我一样使用文件管理器类型的应用程序,则可能会发现创建一个按文件uri然后按内容uri检查然后进行自己的分析的类比较容易。这样,您可以随着时间调整结果,并在大多数情况下克服上面的两个基本问题。
我敢肯定,原来的海报已经弄清楚了。但这可能会帮助将来的求职者。我认为对于独立开发人员来说,将文件处理驱动回规范posix file:// uri是很重要的。我们应该尽可能地处理Google诱导的content://。对他们来说,引入这些是一个可怜且动机错误的选择。
,
MimeTypeMap
是您可以获得的最好的,然后其余部分继续手动建立哑剧类型。
我想知道3gp文件是如何解释为txt的?对我来说,它的哑剧类型为video/3gp
。
然后,您可以确定是视频还是音频,然后进行相应播放。
但是“ 0”将减少您的大部分工作,这是正确的选择。