如何确定android中的MIME类型?假设我有一个完整的文件路径,如:(/ sdcard / tlogo.png)。我想知道它的mime类型。我为它创建了一个函数public static String getMimeType(File file, Context context) {
Uri uri = Uri.fromFile(file);
ContentResolver cR = context.getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getExtensionFromMimeType(cR.getType(uri));
return type;}但是当我调用它时,它返回null。File file = new File(filePath);String fileType=CommonFunctions.getMimeType(file, context);
3 回答
狐的传说
TA贡献1804条经验 获得超3个赞
首先,您应该考虑调用MimeTypeMap#getMimeTypeFromExtension()
,如下所示:
// url = file path or whatever suitable URL you want. public static String getMimeType(String url) { String type = null; String extension = MimeTypeMap.getFileExtensionFromUrl(url); if (extension != null) { type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); } return type;}
万千封印
TA贡献1891条经验 获得超3个赞
检测任何文件的mime类型
public String getMimeType(Uri uri) { String mimeType = null; if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) { ContentResolver cr = getAppContext().getContentResolver(); mimeType = cr.getType(uri); } else { String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri .toString()); mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension( fileExtension.toLowerCase()); } return mimeType;}
30秒到达战场
TA贡献1828条经验 获得超6个赞
上面的MimeTypeMap解决方案在我的使用中返回null。这很有效,而且更容易:
Uri uri = Uri.fromFile(file);ContentResolver cR = context.getContentResolver();String mime = cR.getType(uri);
- 3 回答
- 0 关注
- 684 浏览
添加回答
举报
0/150
提交
取消