Environment.getExternalStorageDirectory().getAbsolutePath() предоставляет мне внешнее хранилище. Но я только что заметил, что двойные приложения (вы можете клонировать приложения, например, на Xiaomi) имеют свой собственный путь к внешнему хранилищу. Как это сделать программно? Я поискал и обнаружил, что на моем телефоне это «/storage/emulated/0» для обычных приложений и «/storage/emulated/999» для клонированных приложений. Я полагаю, что другие производители устройств используют разные пути, и я не могу это жестко запрограммировать, верно?
(с помощью жестко закодированного местоположения двойных приложений)
Я прочитал файлы, сохраненные клонированным приложением из папки «/storage/emulated/999/Pictures/9GAG/», в моем приложении отображаются все 14 файлов, но когда я пытаюсь поделиться ими или скопируйте в буфер обмена, Похоже, поставщик файлов не имеет доступа к этим файлам:
Два взаимосвязанных вопроса: [list] [*]Environment.getExternalStorageDirectory().getAbsolutePath() предоставляет мне внешнее хранилище. Но я только что заметил, что двойные приложения (вы можете клонировать приложения, например, на Xiaomi) имеют свой собственный путь к внешнему хранилищу. Как это сделать программно? Я поискал и обнаружил, что на моем телефоне это «/storage/emulated/0» для обычных приложений и «/storage/emulated/999» для клонированных приложений. Я полагаю, что другие производители устройств используют разные пути, и я не могу это жестко запрограммировать, верно?
[*](с помощью жестко закодированного местоположения двойных приложений) Я прочитал файлы, сохраненные клонированным приложением из папки «/storage/emulated/999/Pictures/9GAG/», в моем приложении отображаются все 14 файлов, но когда я пытаюсь поделиться ими или скопируйте в буфер обмена, Похоже, поставщик файлов не имеет доступа к этим файлам:
[/list] [code]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 [/code] Путь определенно существует, я вижу изображения в папке моего приложения. Сейчас мой файлProvider_paths.xml выглядит так: [code]
[/code] Что мне нужно добавить? Или проблема в другом?