В ACTION_GET_CONTENT не удается разрешить Uri для полного пути к файлу, если используется стороннее приложение-проводник файлов

В настоящее время я разрешаю пользователю выбирать zip файл с помощью

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("application/zip");
startActivityForResult(intent, RequestCode.REQUEST_CHOOSE_BACKUP_FILE);

В onActivityResult мы получаем Uri через data.getData()

Я использую код Пола Берка, чтобы разрешить Uri полный путь к файлу.

Он работает хорошо, пока я не использую сторонний проводник (вы можете увидеть значок синего файла, имя приложения - Explorer)

введите описание изображения здесь

Примером возвращенного Uri является content://com.speedsoftware.rootexplorer.content/storage/emulated/0/Download/epayslip-2.zip, если я выберу файл через Explorer.

Используя код Пола Берка, будет выполнен getDataColumn, который в конечном итоге вернет значение null.

Мне было интересно, это вызвано недостатком кода Пола Берка, или проблема связана с реализацией приложения стороннего файлового браузера? Возможно ли, что мы можем это исправить?

Ответы