如何从whatsapp fileprovider获取txt文件

时间:2016-06-16 22:27:53

标签: android android-intent android-contentprovider android-permissions android-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" />

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

1 个答案:

答案 0 :(得分:2)

  

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

这不是文件系统路径。这是来自content:的{​​{1}} Uri

  

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

它不是一个文件,不仅仅是这个Web页面是Stack Overflow Web服务器上的文件。

您可以使用ContentProviderContentResolver获取openInputStream()所代表内容的InputStream。您可以通过Uri上的ContentResolvergetContentResolver()获取Context,例如ActivityService