Получить фактический путь к изображению из галереи в Android N или выше

Я хочу выбрать изображение из галереи и загрузить на сервер, но я не могу получить фактический путь к изображению из 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 или выше. Помоги мне !!!

заранее спасибо.

проверьте это поможет вам github.com/maraj91/ImagePickerDemo

Maraj Hussain 29.06.2018 13:36

"но работает только до андроида М" - и там надежно работать не будет. Используйте ContentResolver и openInputStream(), чтобы получить InputStream для контента, идентифицированного Uri. Используйте этот InputStream либо для загрузки, либо для создания локальной копии содержимого в какой-либо файл, которым вы управляете.

CommonsWare 29.06.2018 14:19

@CommonsWare у вас есть образец кода? чтобы было легче понять.

Pritesh Vishwakarma 30.06.2018 08:24
context.getContentResolver().openInputStream(contentUri)
CommonsWare 30.06.2018 12:26
0
4
45
0

Другие вопросы по теме