Meine App sollte Dateien an einem Ort speichern, an dem Sie, wenn Sie Ihr Telefon/Tablet an einen Computer anschließen, diese über den Systemdatei-Explorer sehen können.Wie schreibe ich Dateien in externen öffentlichen Speicher in Android, so dass sie von Windows aus sichtbar sind?
Dies ist die Art, wie ich das Schreiben von Dateien implementiert:
protected String mDir = Environment.DIRECTORY_DOCUMENTS;
protected File mPath = Environment.getExternalStoragePublicDirectory(mDir);
protected void writeLogFile(String filename) {
File f = new File(mPath, filename + ".txt");
f.getParentFile().mkdirs();
try (BufferedWriter bw = new BufferedWriter(new FileWriter(f, false))) {
// Details omitted.
} catch (Exception e) {
e.printStackTrace();
return;
}
makeText("Wrote " + f.getAbsolutePath());
}
Das ist das, was ich sehe, wenn ich meine Sony Xperia Z4 Tablet auf Windows (Hinweis fehlende Dokumente Ordner) verbinden:
Dies ist das Verzeichnis, in das die Datei geschrieben wird (unter Verwendung der obigen Implementierung):
Was ist falsch an meiner Implementierung?
Danke, das funktioniert. Ich denke wirklich, dass sie diese Informationen in die [offizielle Dokumentation] aufnehmen sollten (http://developer.android.com/guide/topics/data/data-storage.html). Ich nehme an, dass der MediaStore diese Dateien irgendwann selbst finden würde? –
@ Transporter_Raum_3: Ja. Es gibt eine kleine Ausgabe des Googlebot, die regelmäßig externen Speicher scannt, sowie bei Neustarts, um das 'MediaStore'-Verzeichnis von Dateien zu aktualisieren. Die Datei würde schließlich angezeigt werden. – CommonsWare