如何确定android中的MIME类型?

如何确定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);


神不在的星期二
浏览 685回答 3
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;}

万千封印

检测任何文件的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秒到达战场

上面的MimeTypeMap解决方案在我的使用中返回null。这很有效,而且更容易:Uri uri = Uri.fromFile(file);ContentResolver cR = context.getContentResolver();String mime = cR.getType(uri);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android