前言
在Android 13的MediaProvider中有涉及到getMimeTypeFromExtension()的使用,主要是获取文件的MimeType属性。
记录于此,方便自己差异。
下面代码来自MediaProvider
正文
获取mimeType
//获取文件后缀扩展 String extension = extractFileExtension("/sdcard/91es.m4a"); //根据后缀进行获取mimeType if (null != extension) { String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase(Locale.ROOT)); }
extractFileExtension()方法是获取文件后缀
getMimeTypeFromExtension()根据文件后缀获取文件mimeType
extractFileExtension
public String extractFileExtension(String data) { if (data == null) return null; data = extractDisplayName(data); int lastDot = -1; if (null != data) { lastDot = data.lastIndexOf('.'); } if (lastDot == -1) { return null; } else { return data.substring(lastDot + 1); } }
extractDisplayName()
public String extractDisplayName(String data) { if (data == null) return null; if (data.indexOf('/') == -1) { return data; } if (data.endsWith("/")) { data = data.substring(0, data.length() - 1); } return data.substring(data.lastIndexOf('/') + 1); }
测试
extension : mp4 mimeType : video/mp4 extension : mpeg mimeType : video/mpeg extension : ra mimeType : audio/x-pn-realaudio extension : wma mimeType : audio/x-ms-wma extension : wav mimeType : audio/x-wav extension : ape mimeType : null extension : m4a mimeType : audio/mpeg extension : txt mimeType : text/plain
代码
整合一下,显示自己模块中使用的代码
参考文章
© 版权声明