Я пытаюсь получить реальный путь к файлу, хранящемуся в файловой системе Android (я тестирую на эмуляторе с Android 8.1
)
вот мой код:
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null);
Для более ранних версий Android 8.0
переменная id
содержит значение long
, поэтому следующая строка работает, как и ожидалось.
В Android 8
переменная id
содержит путь, подобный этому raw:/storage/emulated/0/Download/my_file.pdf
, поэтому приведение Long.valueOf(id))
вызывает 'java.lang.NumberFormatException' Exception.
Есть идеи? Спасибо.