Daten speichern in Android Q

  • Hallo zusammen,


    bei mir tut sich folgendes Problem auf:


    Ich speichere mit meiner App Textdateien im Ordner DOCUMENTS.
    Bis Android Pie ist da auch alles in Ordnung.


    Wird aber das Handy des Benutzers auf Q upgedatet, gibt es diesen Ordner nicht mehr!
    Wie bringe ich dann meine Dateien auf Android Q und in welchen Ordner?


    Wenn ich die Daten im internen App Speicher anlege, werden diese beim deinstallieren der App gelöscht.


    Kann ich in Android Pie schon einen Ordner anlegen auf den dann auch Q nach einen Update zugreifen kann?


    Wie handhabt Ihr dieses "Problem"?



    Grüsse


    Hermann

  • Hallo jogimuc,


    vielen Dank erstmal für Deine Antwort.


    Ich greife folgendermaßen zu:


    String pfad = Environment.getExternalStorageDirectory().toString() + "/Documents" + "/StromverbrauchPLUS";
    File file = new File(pfad, dateiname1);
    FileOutputStream out1 = new FileOutputStream(file)...Habe jetzt auch schon viel im Internet gestöbert, aber irgendwie ist das alles schwamig erklärt für mich.Mein Hauptproblem aber ist, das die Daten welche der Benutzer bei vorherigen Versionenerstellt hat beim Update auf Q weg sind.Der interne Appspeicher ist ja auch nicht sehr sinnvoll, da werden die Daten ja beim deinstallieren der App gelöscht.Es gibt doch massenweise Apps die ihre Daten in DOCUMENTS ablegen. Die müssen doch irgendwie auchbei Q wieder an ihre Daten kommen?

  • Hallo jogi,


    hab gerade die Emulatoren Upgedatet u. im Emulator getestet auf Android Q.
    Zieltarget im Projekt ist 28 (Pie).


    Die App funktioniert im Emulator einwandfrei. Auch der Ordner DOCUMENTS ist jetzt
    vorhanden!?


    Muss noch testen, ob es auch mit Targetziel 29 (Q) funktioniert.
    Habe mal was von Kompatibilitätsmodus gelesen...

  • Hallo mit den Klassischen Datei Operationen„File.mkdir“ ist es eigentlich schon seit API 26 vorbei.
    https://stackoverflow.com/ques…working-on-android-api-26



    Ab APi 29 gibt es weitere Einschränkungen. Du wirst da nicht mehr um Storage Access Framework,
    Scoped Storage drum rum kommen.



    https://stackoverflow.com/ques…file-mkdirs-returns-false


    so etwas wie das hier geht schon seit API 26 nicht mehr.


    Code
    String pfad = Environment.getExternalStorageDirectory().toString();
    File dir = new File (pfad,"/Test" +"/Test2");
    boolean bo = dir.mkdirs();
    File file = new File(dir, "dateiname1");
    try {
    file.createNewFile();
    } catch (IOException e) {
    e.printStackTrace();
    }

    PS.
    Habe aber auch gleich eine Frage an dich.
    Wie ist das bei dir? Bei mir im Emulator wird der Ordner „storage/emulated/“ nicht angezeigt.
    Siehe Bild.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!