En Android Q introdujo la nueva función de almacenamiento Scoped , que dice:
las aplicaciones que se dirigen a Android 10 (API nivel 29) y superior tienen acceso con alcance en almacenamiento externo, o almacenamiento con alcance, de forma predeterminada. Dichas aplicaciones solo tienen acceso al directorio específico de la aplicación en el almacenamiento externo, así como a tipos específicos de medios que la aplicación ha creado.
Tengo mi aplicación que crea una base de datos SQLite en el almacenamiento externo, de modo que cuando la aplicación desinstala la base de datos sigue viva y se puede usar más tarde como recuperación o se puede usar fuera del dispositivo Android (digamos en la PC)
¿Cómo debería lograr el mismo efecto con Android Q? Más precisamente si la base de datos está almacenada en un directorio público externo, ¿cómo puedo leer esta base de datos usando el estándar SQLiteOpenHelper
?
Respuestas:
Podría intentar usar la solución de los documentos:
https://developer.android.com/training/data-storage/compatibility
requestLegacyExternalStorage
atrue
en el archivo de manifiesto de tu aplicación:fuente
android:requestLegacyExternalStorage
desaparecerá ...Scoped Storage will be required in next year’s major platform release for all apps, independent of target SDK level
. Android Q Scoped Storage: mejores prácticas y actualizaciones