如何获得具有Uri的文件的MIMEtypes?

我有画廊和相机获得的Uris名单。 这些Uris是这样的: content://media/externalhttp://img.dovov.commedia/94 。 我怎样才能得到它的MIMEtypes?

你可以试试

 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; } 

而不是这个:

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

做这个:

 String type = cR.getType(uri); 

你会得到这个: image/jpeg