- Environment.getExternalStorageDirectory().getAbsolutePath() предоставляет мне внешнее хранилище. Но я только что заметил, что двойные приложения (вы можете клонировать приложения, например, на Xiaomi) имеют свой собственный путь к внешнему хранилищу. Как это сделать программно? Я поискал и обнаружил, что на моем телефоне это «/storage/emulated/0» для обычных приложений и «/storage/emulated/999» для клонированных приложений. Я полагаю, что другие производители устройств используют разные пути, и я не могу это жестко запрограммировать, верно?
- (с помощью жестко закодированного местоположения двойных приложений)
Я прочитал файлы, сохраненные клонированным приложением из папки «/storage/emulated/999/Pictures/9GAG/», в моем приложении отображаются все 14 файлов, но когда я пытаюсь поделиться ими или скопируйте в буфер обмена, Похоже, поставщик файлов не имеет доступа к этим файлам:
Код: Выделить всё
jnius.jnius.JavaException: JVM exception occurred: Failed to find configured root that contains /storage/emulated/999/Pictures/9GAG/Or-if-you-eat-the-Mona-Lisa.jpg java.lang.IllegalArgumentException
Сейчас мой файлProvider_paths.xml выглядит так:
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/792 ... pp-storage