Я хочу выбрать изображение из галереи и загрузить на сервер, но я не могу получить фактический путь к изображению из uri содержимого в android N.
вот мой код, который я использую для получения фактического пути к изображению из галереи, но он работает только до Android M.
В android N или выше он возвращает null
public String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
как я могу добиться этого в Android N или выше. Помоги мне !!!
заранее спасибо.
"но работает только до андроида М" - и там надежно работать не будет. Используйте ContentResolver и openInputStream(), чтобы получить InputStream для контента, идентифицированного Uri. Используйте этот InputStream либо для загрузки, либо для создания локальной копии содержимого в какой-либо файл, которым вы управляете.
@CommonsWare у вас есть образец кода? чтобы было легче понять.
context.getContentResolver().openInputStream(contentUri)
проверьте это поможет вам github.com/maraj91/ImagePickerDemo