如何从URI获取parcelFileDescriptor?

may*_*513 3 java android

在我的应用程序中,我收到使用menifest中的“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();
        }
Run Code Online (Sandbox Code Playgroud)

当我从文件管理器中单击文件并使用我的应用程序打开它时,它说该文件不存在。这意味着我无法从 URI 创建文件。

所以我的问题是如何从 URI 获取parcelFileDescriptor。

may*_*513 7

感谢 Mike M 的评论。

getContentResolver().openFileDescriptor()
Run Code Online (Sandbox Code Playgroud)

正确打开文件描述符。