German im FileDialog USB-Datenträger anzeigen

peternmb

Active Member
Licensed User
Hallo,

in meiner App sollen Dateien auf einen USB-Stick exportiert werden, was gebe ich da am sinnvollsten bei FilePath an?
Ideal wäre es natürlich vorher zu prüfen ob ein Stick angeschlossen ist und diesen direkt vorzuschlagen.
 

lerneBasic4Android

Member
Licensed User
Hallo,

das scheint mir nicht so einfach zu sein. Mir fällt spontan keine Lösung für B4x ein. Ich nehme an, dass es dir speziell um B4j geht? Da könnte man mit inline Java vielleicht Informationen über die Wechselmedien bekommen. Man muss dabei aber zwischen Windows und OS X bzw. Linux unterscheiden. Beispielweise findest man bei Windows USB-Sticks als Laufwerke und bei Linux eingehängt unter /media... Bei Windows bin ich mir aber nicht sicher, ob man USB-Sticks dann von anderen Laufwerken unterscheiden kann... Wie gesagt, irgendwie geht es mit Java sicherlich, aber es ist nicht einfach und in B4x kenne ich keine direkte Lösung.

Viele Grüße
Thomas
 

JOTHA

Well-Known Member
Licensed User
Hallo peternmb,
wenn es immer der gleiche USB-Stick ist, könntest Du einfach vorher eine kleine Datei auf den USB-Stick kopieren und dann z.B. mit ...
B4X:
If File.Exists(File.DirDefaultExternal, "MyFile.txt") Then ...
abfragen.
 

peternmb

Active Member
Licensed User
@thomas: es geht ausschließlich um B4A und Android-Tablets

Hallo peternmb,
wenn es immer der gleiche USB-Stick ist, könntest Du einfach vorher eine kleine Datei auf den USB-Stick kopieren und dann z.B. mit ...
B4X:
If File.Exists(File.DirDefaultExternal, "MyFile.txt") Then ...
abfragen.
Nein, das ist zu aufwändig und hier nicht machbar.

Da die meisten meiner Nutzer es so einfach wie möglich brauchen, wäre es idealerweise sogar ganz ohne einen FileDialog. Ich müsste nur wissen, wie ich einen am Gerät hängenden USB-Datenträger ansprechen kann. Dann versuchen, die zu exportierende Datei dorthin zu kopieren - wenn es nicht klappt eine Meldung "USB-Stick nicht gefunden" - das wäre der Idealfall.
 

JOTHA

Well-Known Member
Licensed User
... für "externalstorage" brauchst du aber auch "Runtime Permissions" ... z.B. für das Beschreiben von deinen USB-Sticks --> android.permission.WRITE_EXTERNAL_STORAGE

Sende mal die komplette Fehlermeldung ...
damit man sieht, was genau mit "externalstorage" gemeint ist.

... oder schau mal HIER
 
Last edited:

peternmb

Active Member
Licensed User
Das Beispiel habe ich jetzt zum Laufen gebracht.
Ich habe die LIB extrahiert und dann die Klasse "Externalstorage" dem Beispiel als Modul hinzugefügt.
Geht vermutlich auch irgendwie anders - ich wusste aber nicht, wie ich die LIB als solche einbinden kann.
 

peternmb

Active Member
Licensed User
Ich habe versucht mir mit diesem Beispiel etwas passendes zu basteln, aber das übersteigt meine B4A-Fähigkeiten um einiges.

Ich möchte eigentlich nur feststellen, ob ein USB-Datenträger vorhanden ist - falls ja Schreibrechte dafür anfordern und eine Datei darauf speichern.
Ich möchte das so einfach wie möglich gestalten und auch keinerlei Auswahlmöglichkeiten für Pfade oder Verzeichnisse.

Vielleicht kann mir da jemand der das schon erfolgreich umgesetzt hat behilflich sein. Danke.
 

peternmb

Active Member
Licensed User
suche mal nach RuntimePermission, da gibt's ...getallsavedirs. Bin mir jetzt nicht ganz sicher ob es das ist was du suchst, aber zumindest darüber lese ich die Installierte SD Karte und den internen Speicher aus (also die Stelle wo ich Schreiben darf)

https://www.b4x.com/android/help/runtimepermissions.html#runtimepermissions_getallsafedirsexternal
Hallo, ist leider nicht das was ich suche - ich möchte eine Datei auf einen USB-Stick schreiben.
Bevor ich mich um die RuntimePermission kümmere müsste ich erst einmal den Pfad zum USB-Stick kennen.
 
Top