So speichern Sie Dateien im externen Speicher Public Directory DOKUMENTE auf Android 4.1.2

Ich möchte eine Datei auf meinem Android 4.1.2 Smartphone im Dokumentenverzeichnis speichern.

Dieses Code-Snippet:

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),"test.txt"); 

Wirft diese Ausnahme aus:

 E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NoSuchFieldError: android.os.Environment.DIRECTORY_DOCUMENTS 

Während dieser Arbeit arbeitet:

 File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"test.txt"); 

Aber ich möchte meine Datei in meinem Dokumentenverzeichnis speichern, nicht im Download. Ive lesen DIRECTORY_DOCUMENTS ist nur in Android 4.4 und höher verfügbar. Aber es gibt auch Dokumente, die auf mein Smartphone gerichtet sind. Also, gibt es keine Lösung, um es in Dokumenten zu speichern?

Thx für Antworten

Kieselsteine

  • Bild, gespeichert in sdcard, erscheint nicht in Android Galerie App
  • So speichern Sie Daten, die nach der Deinstallation verbleiben
  • Wie zeichne Text auf Bild?
  • So speichern Sie eine Bitmap im internen Speicher
  • Android SharedPreferenzen putStringSet bestellen / sortieren
  • Android, wie man ein Objekt in Datei speichern?
  • Wie kann ich 2 Strings auf einer Android-App speichern?
  • SaveInBackground Rückruf funktioniert nicht
  • 2 Solutions collect form web for “So speichern Sie Dateien im externen Speicher Public Directory DOKUMENTE auf Android 4.1.2”

    Du kannst nicht auf DIRECTORY_DOCUMENTS zugreifen, weil es nicht in Android 4.1.2 ist. Was bedeutet, obwohl es ein Dokument-Verzeichnis in Ihrem externen Speicher gibt, wird es nicht von DIRECTORY_DOCUMENTS (da es nicht vorhanden ist). Um dies zu lösen, musst du das Verzeichnis erstellen, wenn es nicht vorhanden ist und den Pfad zu diesem Ordner manuell bekomme.

     File docsFolder = new File(Environment.getExternalStorageDirectory() + "/Documents"); boolean isPresent = true; if (!docsFolder.exists()) { isPresent = docsFolder.mkdir(); } if (isPresent) { File file = new File(docsFolder.getAbsolutePath(),"test.txt"); } else { // Failure } 

    Der Ordner ist in älteren Versionen (von Api 1) von Android vorhanden, aber das Feld DIRECTORY_DOCUMENTS steht zuerst in Version 4.4 (Api 19 – Kitkat) zur Verfügung.

    Lösung für mich war, um Environment.getExternalStorageDirectory() + "/Documents" stattdessen DIRECTORY_DOCUMENTS für ältere Android Versionen zu verwenden.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.