我试图获取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" />
我该怎么做才能使用该文件?
答案 0 :(得分:2)
但我无法使用f文件,因为该路径中不存在该文件。
这不是文件系统路径。这是来自content:
的{{1}} Uri
。
我该怎么做才能使用该文件?
它不是一个文件,不仅仅是这个Web页面是Stack Overflow Web服务器上的文件。
您可以使用ContentProvider
和ContentResolver
获取openInputStream()
所代表内容的InputStream
。您可以通过Uri
上的ContentResolver
来getContentResolver()
获取Context
,例如Activity
或Service
。