1. ホーム
  2. アンドロイド

[解決済み】アンドロイドでファイルのMIMEタイプを判断する方法は?

2022-04-12 16:22:16

質問

例えば、次のようなファイルのフルパスがあるとします:(/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);

解決方法は?

まず、何よりも重要なのは 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;
}