How to determine MIME type of file in android? How to determine MIME type of file in android? android android

How to determine MIME type of file in android?


First and foremost, you should consider calling MimeTypeMap#getMimeTypeFromExtension(), like this:

// 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;}


Detect mime type of any file

public String getMimeType(Uri uri) {               String mimeType = null;    if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {        ContentResolver cr = getAppContext().getContentResolver();        mimeType = cr.getType(uri);    } else {        String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri                .toString());        mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(                fileExtension.toLowerCase());    }    return mimeType;}


The MimeTypeMap solution above returned null in my usage. This works, and is easier:

Uri uri = Uri.fromFile(file);ContentResolver cR = context.getContentResolver();String mime = cR.getType(uri);