In Android Q neu eingeführt Speicherfunktion von Scoped Folgendes besagt:
Apps, die auf Android 10 (API-Stufe 29) und höher abzielen, erhalten standardmäßig Zugriff auf externen Speicher oder Speicher mit Gültigkeitsbereich. Solche Apps haben nur Zugriff auf das app-spezifische Verzeichnis im externen Speicher sowie auf bestimmte Medientypen, die die App erstellt hat.
Ich habe meine App, die eine SQLite-Datenbank auf einem externen Speicher erstellt, sodass die App bei der Deinstallation der Datenbank noch aktiv ist und später als Wiederherstellung oder außerhalb des Android-Geräts verwendet werden kann (z. B. auf dem PC).
Wie soll ich mit Android Q den gleichen Effekt erzielen? Genauer gesagt, wenn die Datenbank in einem externen öffentlichen Verzeichnis gespeichert ist - wie kann ich diese Datenbank mit Standard lesen SQLiteOpenHelper
?
Antworten:
Sie können versuchen, die Lösung aus den folgenden Dokumenten zu verwenden:
https://developer.android.com/training/data-storage/compatibility
requestLegacyExternalStorage
intrue
in der Manifestdatei Ihrer App auf:quelle
android:requestLegacyExternalStorage
verschwinden wird ...Scoped Storage will be required in next year’s major platform release for all apps, independent of target SDK level
. Android Q Scoped Storage: Best Practices und Updates