1

Ich versuche WhatsApp Chat TXT-Datei zu bekommen. Wie ich auf Android-Dokumentation sah:So holen Sie TXT-Datei von Whatsapp-Dateiprovider

private void handleSentMultipleAttached(Intent intent) { 
    ArrayList<Uri> attachedFilesUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); 
    if (attachedFilesUris != null) { 
     for (Uri uri : attachedFilesUris) { 
      File f = new File(uri.getPath()); 
     } 
    } 
} 

Die uri ist:

content://com.whatsapp.fileprovider/external/.Shared/WhatsApp%20Chat%20with.txt 

Aber ich kann nicht die f-Datei verwenden, da Datei in diesem Pfad ist nicht vorhanden.

I'v bereits geöffnet Erlaubnis im Manifest:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_USER_DICTIONARY" /> 

Was soll ich tun, so kann ich die Datei verwenden?

Antwort

2

Aber ich kann nicht die f-Datei verwenden, da die Datei in diesem Pfad nicht existiert.

Das ist kein Dateisystempfad. Das ist ein content:Uri von einem ContentProvider.

Was soll ich tun, damit ich die Datei verwenden kann?

Es ist keine Datei, genauso wenig wie diese Webseite eine Datei auf dem Stack Overflow Web-Server ist.

Sie können ein ContentResolver und openInputStream() verwenden, um ein InputStream auf dem Inhalt von diesen Uri dargestellt zu bekommen. Sie können eine ContentResolver erhalten, indem Sie getContentResolver() auf einer Context, wie eine Activity oder Service aufrufen.

+0

Sie können Ihre Erklärung erweitern? – motis10

+0

@ motis10: Nun, es gibt [diesen Blogbeitrag] (https://commonsware.com/blog/2016/03/15/how-consume-content-uri.html) und [die Dokumentation für 'openInputStream()' ] (https://developer.android.com/reference/android/content/ContentResolver.html#openInputStream (android.net.Uri)) und [einige Dokumentation über die Verwendung eines 'Uri'] (https://developer.android .com/guide/topics/providers/dokumentanbieter.html # open-client). Ansonsten, bitte zögern Sie nicht zu erklären, was Sie nicht verstehen. – CommonsWare