[android] Uri가있는 파일의 MIME 유형을 어떻게 얻을 수 있습니까?
갤러리와 카메라로 얻은 Uris 목록이 있습니다. 이러한 Uris는 다음과 같습니다 content://media/external/images/media/94
.. MIME 유형을 어떻게 얻을 수 있습니까?
답변
당신은 시도 할 수 있습니다
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”를 반환합니다.
답변
이 메서드는 파일의 확장자 (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;
}
답변
대한 Content
Uri
.
ContentResolver cr = context.getContentResolver();
mimeType = cr.getType(contentUri);
대한 File
Uri
.
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(fileUri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
둘 다에 대해 Content
뿐만 아니라 File
.
public String getMimeType(Context context, Uri uri) {
String mimeType = null;
if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
ContentResolver cr = context.getContentResolver();
mimeType = cr.getType(uri);
} else {
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
}
return mimeType;
}
답변
대신 :
String type = mime.getExtensionFromMimeType(cR.getType(uri));
이 작업을 수행:
String type = cR.getType(uri);
그리고 당신은 이것을 얻을 것입니다 : image/jpeg
.