我需要在我的 android 应用程序中打开 pdf 文档。我使用意图启动 foxit pdf 阅读器。如果我直接从 sd 卡传递文件,则 foxit 阅读器运行没有问题。但是我的 pdf 文件位于我的应用程序的私有文件夹中,所以我使用 ContentProvider 通过覆盖我的 ContentProvider 中的 openFile(Uri uri,int mode) 方法来传递文件。这里我通过 ParcelFileDescriptor。foxit reader 运行,我的文档出现在 reader view 上,但是 foxit reader 中的所有工具都被禁用的问题,这个问题只在使用 ContentProvider 时出现。我尝试将文件模式更改为 READ_WRITE 等,但问题仍然出现。请问这个问题的解决方法是什么。非常感谢您。
这是我的 openFile 方法:
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) {
try{
File f=new File(uri.getPath());
if (f.exists()) {
ParcelFileDescriptor pfd = ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
return pfd;
}
}catch(FileNotFoundException ex){
Toast.makeText(getContext(), "File not found", Toast.LENGTH_LONG).show();
}catch (Exception e) {
e.printStackTrace();
}
return null;
}