Dateien schreiben unter verschiedenen Android Versionen?

  • 5 Antworten
  • Letztes Antwortdatum
A

ArpX

Neues Mitglied
3
Hallo,

Zum Üben, und weil es für mich nützlich wäre, schreibe ich gerade eine App die eine Sache machen soll. GPS Position bzw direkt einen Track in einem festen Zeitintervall speichern.
Klappt auch soweit, ich hab nur zwei Probleme dabei. Android killt meine App öfter mal. Hab gelesen das ich es als Service starten muss damit das nicht passiert, aber darum gehts erstmal nicht :)
Das zweite ist, auf dem Handy eines Freundes klappt das schreiben nicht.

Code:
private void writeToFile(String data)
try {
  FileOutputStream = f new FileOutputStream(datei,true);
  PrintWriter pw = new PrintWriter(f);
  pw.println(data);
  pw.flush();
  pw.close();
  f.close()
}
catch (IOException e) 
{
  Log.e("Exception", "File write failed: "+e.toString());
}
}

Das ist die Funktion die ich benutze um in eine Datei hineinzuschreiben. Da schicke ich dann immer pro GPS Punkt eine Zeile hin die an die Datei angehängt wird.

Nun, auf meinem S3, mit Android 4.1.2 funktioniert das, auf dem meines Freundes, mit Android 2.3.6, funktioniert das nicht.
Kann es sein das diese Funktionen in dem alten Android nicht enthalten sind? Denn sonst funktioniert die App bei ihm. Es wird ein Ordner angelegt und die Koordinaten angezeigt, nur ist keine Datei im Ordner.

Falls das der Grund ist, wie müsste ich das abändern damit das auch auf dem alten Android läuft?

Danke.
 
Dateien schreiben geht auf allen Devices. Dafür braucht man keinen Service (GPS Empfang ist da schon komplizierter). Frage ist, ob der Speicherort auf den Geräten existiert. Deshalb soll man nicht einfach so einen FileOutputStream oder so erzeugen, sondern eher openFileOutput() benutzen oder sich einen Pfad mittels getExternalFilesDir() bzw. getExternalStorageDiectory() zusammenbasteln.

Eine Übersicht findest du hier: https://developer.android.com/guide/topics/data/data-storage.html

ADD: Das mit dem Ordner hab ich zuerst überlesen. Das wäre in der Tat seltsam. Falls das stimmt, solltest du mal gucken, auf dem Gerät noch Platz ist.
 
Zuletzt bearbeitet:
Ich mach das immer mit
Code:
OutputStreamWriter ow = new OutputStreamWriter(f);
ow.append("abc");
ow.close();
 
was ist denn f bei dir, greenstar?
 
Dein FileOutputStream :D
 
Writer schreiben chars, OutputStreams schreiben bytes. Mit Schreibbarkeit unter Android hat das nix zu tun.

Wichtiger Hinweis:
Die UTF-8 Selbsthilfegruppe trifft sich heute im groÃÂen Saal.
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
488
AnnaBauer21
AnnaBauer21
D
Antworten
8
Aufrufe
764
jogimuc
J
S
Antworten
7
Aufrufe
1.201
Silvasurf
S
AnnaBauer21
Antworten
6
Aufrufe
989
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten