Что произойдет, если внешняя библиотека примет только java .io.File или путь к файлу Android 10? Все внешние библиотеки, которые не использовали DocumentFile или не обрабатывали Uri с хранилищем мультимедиа, непригодны для использования?
Вы всегда можете сделать копию содержимого в файл, которым вы управляете (например, в getCacheDir()
), затем используйте библиотеку с этой копией.
Кроме того, на Android R (по крайней мере, через DP3) «необработанные пути» в основном означают, что READ_EXTERNAL_STORAGE
снова работает для доступа к внешнему хранилищу . Поэтому вам, возможно, придется беспокоиться только об этой проблеме создания копии для Android 10.
Например: мне нравится использовать эту библиотеку на Android 10 и выше: https://github.com/ericfarng/jid3lib
Но эта библиотека обрабатывает только java .io.File или filepath. Какие варианты мне пришлось использовать в будущем?
Поскольку эта библиотека с открытым исходным кодом, у вас есть возможность сделать свою собственную копию библиотеки, которая может работать на InputStream
. Эту конкретную библиотеку будет несколько сложно изменить, так как она опирается на RandomAccessFile
.