Comment puis-je obtenir le type mime d’un fichier ayant son Uri?

J’ai une liste d’uris obtenue avec la galerie et l’appareil photo. Ces Uris sont comme ceci: content://media/external/images/media/94 . Comment puis-je obtenir son type de mime?

Tu peux essayer

 ContentResolver cR = context.getContentResolver(); MimeTypeMap mime = MimeTypeMap.getSingleton(); Ssortingng type = mime.getExtensionFromMimeType(cR.getType(uri)); 

Modifier :

 mime.getExtensionFromMimeType(cR.getType(uri)) 

renvoie -> “jpeg”

 cR.getType(uri); 

renvoie “image / jpeg” qui correspond à la valeur attendue.

Cette méthode renvoie l’extension du fichier (jpg, png, pdf, epub, etc.).

  public static Ssortingng getMimeType(Context context, Uri uri) { Ssortingng 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())).toSsortingng()); } return extension; } 

Au lieu de cela:

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

Faites ceci:

 Ssortingng type = cR.getType(uri); 

Et vous obtiendrez ceci: image/jpeg .

pour le Content Uri .

 ContentResolver cr = context.getContentResolver(); mimeType = cr.getType(contentUri); 

pour le File Uri .

 Ssortingng fileExtension = MimeTypeMap.getFileExtensionFromUrl(fileUri .toSsortingng()); mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension( fileExtension.toLowerCase()); 

pour les deux, fonctionne aussi bien pour le Content que pour le File .

 public Ssortingng getMimeType(Context context, Uri uri) { Ssortingng mimeType = null; if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) { ContentResolver cr = context.getContentResolver(); mimeType = cr.getType(uri); } else { Ssortingng fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri .toSsortingng()); mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension( fileExtension.toLowerCase()); } return mimeType; }