Как открыть SQLite базу из внешнего файла в Android Kotlin
Вводная: есть приложение на Android использующее внутреннюю SQLite базу под управлением Room, есть аналогичное приложение на Deskotop с такой же базой.
Цель: синхронизировать базы.
Предполагаемый способ: положить файл настольной базы в папку (допустим Download/Documents) на мобильном. Открыть этот файл из Android приложение и провести необходимые операции по сравнению содержимого с базой на Android и их синхронизацией.
Проблема: не могу найти способа просто открыть и прочитать случайную базу из внешнего файла.
Ответы (1 шт):
Открытие БД SQLite из внешнего каталога явно запрещено начиная с API-29 (по-моему).
Был в свое время костыль, который типа разрешал открывать БД не из каталога юзера. Флажок в манифесте:
<application
...
android:requestLegacyExternalStorage="true">
Не знаю как сейчас, но думаю, что костыль уже умер.
Единственный способ, это организовать ручную синхронизацию между БД во внутреннем и внешнем каталогах - задача, как говорится, со "звездочкой". Хотя... вроде не бином Ньютона проверять lastModified и копировать туда/сюда файлы.