Подтвердить что ты не робот

Как я могу получить тип mime файла с его Uri?

У меня есть список Uris, полученный с Галереей и камерой. Эти Ури такие: content://media/external/images/media/94. Как я могу получить его тип mime?

4b9b3361

Ответ 1

Вы можете попробовать

ContentResolver cR = context.getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getExtensionFromMimeType(cR.getType(uri));

Изменить:

mime.getExtensionFromMimeType(cR.getType(uri)) 

возвращает → "jpeg"

cR.getType(uri);

возвращает "image/jpeg", что является ожидаемым значением.

Ответ 2

Этот метод возвращает расширение файла (jpg, png, pdf, epub и т.д.).

 public static String getMimeType(Context context, Uri uri) {
    String extension;

    //Check uri format to avoid null
    if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
        //If scheme is a content
        final MimeTypeMap mime = MimeTypeMap.getSingleton();
        extension = mime.getExtensionFromMimeType(context.getContentResolver().getType(uri));
    } else {
        //If scheme is a File
        //This will replace white spaces with %20 and also other special characters. This will avoid returning null values on file name with spaces and special characters.
        extension = MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.getPath())).toString());

    }

    return extension;
}

Ответ 3

Вместо этого:

String type = mime.getExtensionFromMimeType(cR.getType(uri));

Сделайте это:

String type = cR.getType(uri);

И вы получите следующее: image/jpeg.