如何从URI中获取parcelFileDescriptor?

3

在我的应用程序中,我正在接收意图,使用“application/pdf”意图过滤器在清单中打开pdf文件。

经过大量研究,我正在尝试以下代码来打开文件。

     try {
            File f = new File("file://"+uri.getPath());
            Toast.makeText(k.this, f.getAbsolutePath(), Toast.LENGTH_LONG).show();
            Toast.makeText(k.this, f.exists()?"Y":"N", Toast.LENGTH_LONG).show();
            parcelFileDescriptor = ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
        } catch (IOException e) {
            e.printStackTrace();
        }

当我从文件管理器中点击一个文件并用我的应用程序打开它时,它会显示文件不存在。这意味着我无法从URI创建文件。
所以我的问题是如何从URI获取parcelFileDescriptor。

1
使用其中一个 ContentResolver#openFileDescriptor() 方法。 - undefined
1个回答

7
感谢Mike M.的评论。
getContentResolver().openFileDescriptor()

正确打开文件描述符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接