MODIFIER :
Utilisez cette solution ici : https://stackoverflow.com/a/20559175/2033223
Fonctionne parfaitement !
Tout d'abord, merci pour votre solution @luizfelipetx
J'ai un peu changé ta solution. Cela fonctionne pour moi :
public static String getRealPathFromDocumentUri(Context context, Uri uri){
String filePath = "";
Pattern p = Pattern.compile("(\\d+)$");
Matcher m = p.matcher(uri.toString());
if (!m.find()) {
Log.e(ImageConverter.class.getSimpleName(), "ID for requested image not found: " + uri.toString());
return filePath;
}
String imgId = m.group();
String[] column = { MediaStore.Images.Media.DATA };
String sel = MediaStore.Images.Media._ID + "=?";
Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
column, sel, new String[]{ imgId }, null);
int columnIndex = cursor.getColumnIndex(column[0]);
if (cursor.moveToFirst()) {
filePath = cursor.getString(columnIndex);
}
cursor.close();
return filePath;
}
Remarque : Nous avons donc obtenu des documents et des images, selon, si l'image vient de 'recents', 'gallery' ou quoi que ce soit. Donc j'extrait d'abord l'ID de l'image avant de la chercher.