Hey danke für die Antwort,
leider funktoniert es immer noch nicht. Habe nun versucht einfach mal eine Datei auf die SD-Card zu schreiben:
try {
File root = Environment.getExternalStorageDirectory();
pdfReaderActivity.ausgabe.setText(root.getAbsolutePath());
if (root.canWrite()){
File gpxfile = new File(root, "gpxfile.gpx");
FileWriter gpxwriter = new FileWriter(gpxfile);
BufferedWriter out = new BufferedWriter(gpxwriter);
out.write("Hello world");
out.close();
} pdfReaderActivity.ausgabe.setText("kann nicht schreiben");
} catch (IOException e) {
Log.e("....", "Could not write file " + e.getMessage());
pdfReaderActivity.ausgabe.setText("error");
}
Alles anzeigen
Bekomme jedoch immer die else ausgabe, sprich, dass er nich schreiben könne.
Dann habe ich mich im folgenden Blog erkundigt und die Schritte durchgeführt.
http://androidgps.blogspot.com…o-sd-card-in-android.html
Habe nun eine SD-Card manuell hinzugefügt, leider kann ich immer noch keine Datei auf die SD-Card schreiben.
Weiterhin habe ich noch eine nützliche Methode gefunden die den Storage auf unterschiedliche Stadien checkt:
private boolean checkForDirectory()
{
boolean cardstate = true;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_BAD_REMOVAL.equals(state)) {
cardstate = false;
runDialog("Memory Card was removed before it was unmounted");
}
else if (Environment.MEDIA_CHECKING.equals(state)) {
runDialog("Memory Card is present and being disk-checked");
}
else if (Environment.MEDIA_MOUNTED.equals(state)) {
cardstate = true;
//runDialog("Memory Card is present and mounted with read/write access");
}
else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
runDialog("Memory Card is present and mounted with readonly access");
}
else if (Environment.MEDIA_NOFS.equals(state)) {
cardstate = false;
runDialog("Memory Card is present but is blank or using unsupported file system");
}
else if (Environment.MEDIA_REMOVED.equals(state)) {
cardstate = false;
runDialog("Memory Card is not present");
}
else if (Environment.MEDIA_SHARED.equals(state)) {
cardstate = false;
runDialog("Memory Card is present but shared via USB mass storage");
}
else if (Environment.MEDIA_UNMOUNTABLE.equals(state)) {
cardstate = false;
runDialog("Memory Card is present but cannot be mounted");
}
else if (Environment.MEDIA_UNMOUNTED.equals(state)) {
cardstate = false;
runDialog("Memory Card is present but not mounted");
}
File dir = new File(Environment.getExternalStorageDirectory() + "/gwc");
if(dir.exists() && dir.isDirectory())
{
System.out.println("Folder exists");
}
else
{
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File myNewFolder = new File(extStorageDirectory + "/gwc");
boolean created =myNewFolder.mkdir();
System.out.println("Folder gwc created ");
System.out.println(created);
}
return cardstate;
}
Alles anzeigen
Hier bekomme ich immer den letzten Fall, sprich angeblich erstellt er den ordner weil er nicht vorhanden ist. Ich rufe die Methode jedoch über einen Clickhandler mehrmals hintereinander auf und er sagt jedes mal "gwc created". Wenn er aber wirklich den ordner erstellen würde, müsste er doch beim zweiten Ausführen sagen, dass der Ordner bereits existiert.... Die Voraussetzungen sind also erfüllt, aber created liefert immer false, sprich er erstellt einfach keinen ordner....
Also ich weiß wirklich mittlerweile nicht weiter....
mfg reborn