如何确定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 关注
- 724 浏览
添加回答
举报
0/150
提交
取消
