如何从 whatsapp fileprovider 获取 txt 文件

How to fetch txt file from whatsapp fileprovider

我正在尝试获取 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" />

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

But i can't use the f file because file is not exist in that path.

这不是文件系统路径。这是来自 ContentProvider.

content: Uri

What should i do so i can use the file?

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

您可以使用 ContentResolveropenInputStream()Uri 表示的内容上获得 InputStream。您可以通过在 Context 上调用 getContentResolver() 来获得 ContentResolver,例如 ActivityService.