2017-08-09 1 views
0

Ich bin ein Neuling in Android-Entwicklung. Ich bin sicher, dass viele Leute das gleiche Problem haben. Ich habe eine Galaxy S7 Telefon ohne SD-Karte. Also kein externer Speicher. Aber ich möchte eine Datei mit meiner App erstellen, auf die ich vom Windows Explorer aus zugreifen muss, um sie zu exportieren.Android Studio - Zugriff auf/Speicher/emuliert/0 von Windows Explorer und Android-Dateimanager

Hinweis: debbug im USB-Modus - Keine virtuelle Gerät

Natürlich in meinem Manifest-Datei ich diese 2 Berechtigungen setted habe:

android.permission.WRITE_INTERNAL_STORAGE 
android.permission.WRITE_EXTERNAL_STORAGE 

sicher zu sein, die ich erstellt habe eine Datei verwenden ich diese Zeilen schreibe Verfahren und die folgende Lesemethode:

File root = this.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); 
    File customFolder = new File(root.getAbsolutePath() + "/CustomFolder"); 
    customFolder.mkdirs(); 
    file = new File(customFolder, "myData.txt"); 

    // Must catch FileNotFoundException and IOException 
    try { 
     FileOutputStream f = new FileOutputStream(file); 
     PrintWriter pw = new PrintWriter(f); 
     pw.println("Howdy do to you,"); 
     pw.println("and the horse you rode in on."); 
     pw.flush(); 
     pw.close(); 
     f.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     Log.i(TAG, "File not found"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     Log.i(TAG, "I/O exception"); 
    } 

zu lesen Um myData.txt

Also alle Methoden sind in Ordnung, aber wenn ich mein Dateisystem durchsuche, um die erstellte Datei myData.txt zu bekommen, kann ich es nicht finden !!

Die meisten der Anwendungen wir auf die Wurzel haben ihre eigenen Ordner zu installieren, wie Snapchat, WhatsApp etc etc

Ich mag d die gleiche Sache zu machen, was die Art und Weise Datei in schreiben:

ROOT -> MyApplicationName -> CustomFolder

Vielen Dank für Ihre Hilfe :)

Antwort

0

ich fand schließlich eine Lösung, die eine MediaScannerConnection.scanFile() -Methode hinzugefügt wird.

MediaScannerConnection.scanFile(getApplicationContext(),new String[]{file.getAbsolutePath()},null,new MediaScannerConnection.OnScanCompletedListener() { 
     @Override 
     public void onScanCompleted(String path, Uri uri) { 
      // Do something here if you want 
     }}); 

Aber diese Lösung nicht mich total fit, weil der Speicherordner ist:

Android/data/donain_name/Dateien/Dokumente/CustomFolder

I gleiches Ergebnis haben möchte wie whatsapp-Anwendung, die einen Ordner im internen Speicherstammverzeichnis haben kann.

Das Ergebnis ich will, ist: MyApplication/CustomeFolder

Verwandte Themen