Datei auf eine Micro-SD-Card speichern

  • Moin zusammen,


    ich besitze ein Sony Xperia Ultra A1 mit der Version 7.0 und möchte es unter keinen Umständen rooten. Ich versuche schon seit über 12 Stunden verzweifelt eine Datei (z.B.) Text-Datei auf eine Micro-SD-Card zu speichern, jedoch erfolglos....


    Zu meinen Fragen: (Projekt im Anhang)
    tryToWriteOnMicroSD.zip
    [Blockierte Grafik: https://s1.imagebanana.com/file/180930/8dnq2xeb.PNG]


    1) in Zeile 30 frage ich eine Berechtigung zum schreiben ab, die sich einer Zahl (2) aus Zeile 14 bedient. Warum ist es der Wert 2 und reicht es als Abfrage für die Berechtigung? Im Mainfest habe ich die Permission auch hinzugefügt. (Habe die Abfrage mit der Berechtigung nicht selbst hinbekommen und dann den Codeschnipsel kopiert...)



    2) In Zeile 16 setze ich einen absoluten Pfad. Ich habe meine Micro-SD-Card eingesteckt, Fx Explorer aus dem Playstore geladen und mir die Infos der Micro SD Card anzeigen lassen (siehe Bilder):


    [Blockierte Grafik: https://s2.imagebanana.com/file/180930/LkTMUcc6.png]


    [Blockierte Grafik: https://s2.imagebanana.com/file/180930/dqaQZpFH.png]


    Ich habe es nicht geschafft den Pfad mittels Anweisungen herauszubekommen...
    a) Das komische ist, dass wenn ich diesen Pfad angebe, im internen Speicher unter Android -> data -> "Projekt-Ordner" -> files -> storage -> 8775-12FF (Name der Micro-SD-Card laut Fx Explorer)
    die Textdatei erzeugt wird. Der Ordner 8775-12FF ist vorher nicht vorhanden und wenn ich in Zeile 16 einen anderen Ordner angebe funktioniert es nicht. Ich kann allerdings auch direkt unter files und storage speichern.


    Warum wird nur ein Ordner mit dem Namen der Micro-SD-Card akzeptiert und kein anderer und warum befindet sich dieser auf dem internen Speicher????
    (Hinweis: Ich kann die Ordner und Datei nur mit dem Fx Explorer sehen).


    b) Ich habe gelesen, dass der Befehl .getExternalFilesDir(null) zwei Argumente zurückgibt und dass das zweite Argument der Pfad zum externen Speichermedium ist, sofern vorhanden. Ich bekomme den Befehlt allerdings nicht in meinem Code implementiert. Die App stürzt dann immer ab. Könnte mir da jemand meinen Code überarbeiten?

  • hallo
    Also so wie du die permissin anforderst ist das Mainstreaming nicht richtig.
    Ich mache das nach dieser doku
    https://developer.android.com/…ng/permissions/requesting


    Im übrigen habe ich es auch noch mit geschaft einen Vollzeit auf die externe nicht emulierten karte genommen.
    Das Verzeichnis .Android ist kein Problem.
    Etwas Hilfe vielleicht hier
    http://germanylandofinnovation…-auf-android-zu-schreiben


    Ich bin nur am Handy oder tablet und da ist Coden echt unangenehm. Deshalb kann ich im Moment auch nicht weiter helfen.

  • Genau via getExternalFilesDir(null) bekommst du alle externen Speicherpfade. (extern muss nicht immer sd-card sein).
    Da du als Parameter null angibst bekommst du den Pfad: storage/xxx/Android/de.abc.try.../files/ zurück.
    Das zweite Array-Element (falls vorhanden) ist meistens die SD-Card.


    Ich habe deinen Code mit Kommentaren mal angepasst.
    Am besten mal in Ruhe anschauen, im Logcat schauen und auch mal den Device File Explorer von Android-Studio benutzen. Dann brauchst du keine extra Dateimanager-App auf dem Handy.

  • OMG es hat funktioniert vielen Dank!!!!
    Danke hast meine Laune mit einem Schlag um 180° gedreht ;) ! Ich schaue mir die Kommentare noch bis heute Abend an und wenn ich nichts mehr finde, was ich nicht verstehe, dann setzte ich das Thema auf gelöst.


    Vielen DANK!

Jetzt mitmachen!

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