Android, как настроить путь поставщика для двойного хранилища приложений ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Android, как настроить путь поставщика для двойного хранилища приложений

Сообщение Anonymous »

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

Вернуться в «Android»