如何確定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 關注
- 717 瀏覽
添加回答
舉報
0/150
提交
取消