Учитывая, что в какой-то момент у меня есть URI, данный мне какой-то внешней библиотекой, и все настройки FileProvider выполнены правильно (и URI предоставлены разрешения на чтение / запись), как я могу получить путь к изображению на дискена что указывает URI?
Предположим, что файл изображения хранится в /sdcard/XYZAppFolder/file.jpg
.
Во время отладки я вижу строку URI:
content://<applicationID>.provider/<virtualfolder>/file.jpg
Но, пытаясь выполнить запрос через ContentResolver, я получаю индекс -1:
Cursor cursor = contentResolver.query(contentURI, null, null, null,
cursor.moveToFirst();
int idx = cursor.getColumnIndex(Images.ImageColumns.DATA);
<paths>
<external-path
name="virtualfolder"
path="VISUAPP" />
</paths>
Манифест:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
Любой другой способ получить абсолютный путь?