В Android Q введена новая функция хранения Scoped , которая гласит:
приложениям, ориентированным на Android 10 (уровень API 29) и выше, по умолчанию предоставляется доступ с ограничением во внешнее хранилище или хранилище с областью действия. Такие приложения имеют доступ только к каталогу конкретного приложения на внешнем хранилище, а также к определенным типам носителей, созданных приложением.
У меня есть приложение, которое создает базу данных SQLite на внешнем хранилище, так что, когда приложение удаляет базу данных, которая еще жива, и может быть использована позже для восстановления или использования вне устройства Android (скажем, на ПК)
Как мне добиться того же эффекта с Android Q? Точнее, если база данных хранится во внешнем публичном каталоге - как я могу читать эту базу данных, используя стандарт SQLiteOpenHelper
?
Ответы:
Вы можете попробовать использовать решение из документации:
https://developer.android.com/training/data-storage/compatibility
requestLegacyExternalStorage
дляtrue
в файле манифеста вашего приложения:источник
android:requestLegacyExternalStorage
исчезнет ...Scoped Storage will be required in next year’s major platform release for all apps, independent of target SDK level
, Android Q Scoped Storage: лучшие практики и обновления