Tôi có một Danh sách các Uris thu được bằng Thư viện và Máy ảnh. Những URI được như thế này: content://media/external/images/media/94
. Làm thế nào tôi có thể nhận được loại kịch câm của nó?
Tôi có một Danh sách các Uris thu được bằng Thư viện và Máy ảnh. Những URI được như thế này: content://media/external/images/media/94
. Làm thế nào tôi có thể nhận được loại kịch câm của nó?
Câu trả lời:
Bạn co thể thử
ContentResolver cR = context.getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getExtensionFromMimeType(cR.getType(uri));
Biên tập :
mime.getExtensionFromMimeType(cR.getType(uri))
trả về -> "jpeg"
cR.getType(uri);
trả về "image / jpeg" là giá trị mong đợi.
cR.getType(uri)
nhưng ime.getExtensionFromMimeType(cR.getType(uri));
tôi nhận được null. .Csv không được hỗ trợ hay sao?
Phương thức này trả về phần mở rộng của tệp (jpg, png, pdf, epub, v.v.).
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;
}
cho Content
Uri
.
ContentResolver cr = context.getContentResolver();
mimeType = cr.getType(contentUri);
cho File
Uri
.
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(fileUri
.toString());
mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension.toLowerCase());
cho cả hai, hoạt động Content
tốt cho 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;
}
Thay vì điều này:
String type = mime.getExtensionFromMimeType(cR.getType(uri));
Làm cái này:
String type = cR.getType(uri);
Và bạn sẽ có được điều này: image/jpeg
.
mime.getExtensionFromMimeType(cR.getType(uri))
trả lại cho tôi"jpeg"
nhưngcR.getType(uri)
trả về"image/jpeg"
đó là giá trị mong đợi.