У меня есть список Uris, полученный с Галереей и камерой. Эти Ури такие: content://media/external/images/media/94
. Как я могу получить его тип mime?
Как я могу получить тип mime файла с его Uri?
Ответ 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
.