Storage Access Framework Verständnisprobleme

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Storage Access Framework Verständnisprobleme

    Hallo liebe Kollegen,

    ich bin im Bereich Android Apps hobbymäßig unter Java unterwegs, aber schon Profi im Bereich IT und Programmierung. Kürzlich habe ich ein altes Handy vom Typ Sony XPERIA Z3 compact unter LineageOS 17.1 (Android 10) eingerichtet aber eine alte App von mir bekomme ich nicht zum Laufen, weil sich die Speicherung auf externen Datenträger wohl komplett geändert hat.

    Meine selbstprogrammierte App ist im Prinzip völlig primitiv. Mit ihr kann man Notizen in eine lokale SQLITE-DB speichern. Der Datenaustausch zum PC in beide Richtungen läuft über csv-Dateien. Man klickt z.B. einfach auf einen Button und es wird eine Sicherheitskopie auf die Karte geschrieben. Der Pfad innerhalb storage/emulated/0 wird über die Preferences eingetragen. Berechtigung WRITE_EXTERNAL_STORAGE steht im Manifest. Beim Button-Klick wird ein Async-Task angestoßen, darin ein SQL-Select, der in einen String schreibt, anschließend eine neue File erzeugt, per Filewriter in die File geschrieben und dann Toast "Gespeichert" und fertig. Hat immer unter 1 Sekunde gedauert.

    Ich meine schon, das mit Android 10 eingeführte Sicherheitskonzept der Scoped Storage halb verstanden zu haben (1). Es gibt auch Myriaden von Tutorials und Videos im Netz, aber genau das erschlägt mich wegen der Vielfalt von Versionen. Ich würde in meiner App gerne *einmal* beim Einrichten einen Dialog haben, der auf einen Folder innerhalb storage/emulated/0 berechtigt, aber nicht jedesmal einen Intent aufrufen müssen und einen Dialog zum Speichern der Datei zu bekommen. Es soll im Normalbetrieb einfach auf Knopfdruck ein Abzug der SQLIte-Datenbank als Text auf SD-Karte weggespeichert werden, so wie es immer funktioniert hat.

    Von daher die Frage: Geht es in Zukunft mit Android 10/11 überhaupt, im Hintergrund eine neue Datei in einem speziellen Ordner wegzuschreiben, ohne jedesmal einen File-Dialog benutzen zu müssen? Gerne könnte ich mir die Berechtigung MANAGE_EXTERNAL_STORAGE geben, von der in den Tutorials die Rede ist.

    Danke im voraus für Input
    Johannes

    (1) Wobei bei Berechtigung auf Netzwerkverbindung gerne die ganzen privaten Inhalte einer App unsichtbar mit Facebook, Google und Konsorten "geteilt" werden und das unberechtigte Auslesen der SD-Karte imho ein Nebenkriegsschauplatz ist.