No Android Q, introduzimos o novo recurso de armazenamento com escopo , que diz:
os aplicativos que segmentam o Android 10 (nível 29 da API) e superior recebem acesso com escopo no armazenamento externo, ou armazenamento com escopo, por padrão. Esses aplicativos têm acesso apenas ao diretório específico do aplicativo no armazenamento externo, bem como tipos específicos de mídia que o aplicativo criou.
Eu tenho meu aplicativo que cria banco de dados SQLite no armazenamento externo, de modo que quando o aplicativo desinstala o banco de dados ainda ativo e pode ser usado posteriormente como recuperação ou usado fora do dispositivo Android (digamos no PC)
Como devo obter o mesmo efeito com o Android Q? Mais precisamente se o banco de dados estiver armazenado em diretório público externo - como posso ler esse banco de dados usando o padrão SQLiteOpenHelper
?
Respostas:
Você pode tentar usar a solução nos documentos:
https://developer.android.com/training/data-storage/compatibility
requestLegacyExternalStorage
comotrue
no arquivo de manifesto do seu aplicativo:fonte
android:requestLegacyExternalStorage
desapareça ...Scoped Storage will be required in next year’s major platform release for all apps, independent of target SDK level
. Armazenamento com escopo Q do Android: práticas recomendadas e atualizações