как получить расширение из Uri?
Пытаюсь получить расширение из Uri скачаного файла на android 6 но получаю только пустой String или null
Как получить расширение из Uri ? пробовал на android 10 таких проблем нет.
Файл загружен с помощью Chrome и при передаче он показывает на своем экране имя и расширение и кнопку Открыть. Но видимо моему приложению эту информацию он не дает? Или я не правильно получаю?
private static String getFileMimeType(Context context, Uri uri){
String urisceme = uri.getScheme();
if(urisceme.equalsIgnoreCase(ContentResolver.SCHEME_CONTENT)){
MimeTypeMap mime = MimeTypeMap.getSingleton();
String getType = context.getContentResolver().getType(uri);
String ext = mime.getExtensionFromMimeType(getType);
boolean existExt = mime.hasMimeType(getType);
if(existExt)
return ext;
else{
String extF = MimeTypeMap.getFileExtensionFromUrl(uri.toString());
return extF;
}
}else{
return MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(new File(uri.toString())).toString());
}
}
Ответы (1 шт):
Автор решения: Yura Ivanov
→ Ссылка
Попробуйте так:
if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
try (Cursor returnCursor =
context.getContentResolver().query(uri, null, null, null, null)) {
if (returnCursor != null && returnCursor.moveToFirst()) {
int mimeIndex = returnCursor.getColumnIndex(MediaStore.MediaColumns.MIME_TYPE);
return returnCursor.getString(mimeIndex);
}
} catch (Exception ignore) {}
return null;
}
