1

我试图获取 whatsapp 聊天 txt 文件。正如我在 Android 文档中看到的:

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());
        }
    }
}

uri是:

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

但我不能使用 f 文件,因为该路径中不存在文件。

我已经在清单中打开了权限:

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

我应该怎么做才能使用该文件?

4

1 回答 1

2

但我不能使用 f 文件,因为该路径中不存在文件。

那不是文件系统路径。那是一个content: Uri从一个ContentProvider

我应该怎么做才能使用该文件?

它不是一个文件,就像这个网页是 Stack Overflow Web 服务器上的一个文件一样。

您可以使用ContentResolverandopenInputStream()来获取InputStream由 that 表示的内容Uri。您可以ContentResolver通过调用getContentResolver()a来获得 a Context,例如 anActivityService

于 2016-06-16T22:31:16.833 回答