如何打开存储在内部存储器中的PDF

Spi*_*777 5 android

我有一个应用程序下载PDF文件并将其与MODE_PRIVATE(出于安全目的)一起存储在应用程序的内部存储器中:

FileOutputStream fos = getApplicationContext().openFileOutput(LOCAL_FILE_NAME, Context.MODE_PRIVATE);

InputStream inputStream = entity.getContent();
byte[] buffer = new byte[1024];
int bufferLength = 0; 

while((bufferLength = inputStream.read(buffer)) > 0) {           
  fos.write(buffer, 0, bufferLength);      
}

fos.close();
Run Code Online (Sandbox Code Playgroud)

如何打开并显示下载的PDF文件?我一直在StackOverflow中搜索,我还没有找到明确的解决方案.

似乎问题是Android没有打开PDF文件的原生支持,所以我认为有两种选择:

  1. 使用一些外部库来显示PDF文件.有什么效果很好吗?

  2. 启动Intent以显示PDF文件,但似乎存储为MODE_PRIVATE的文件无法由外部Apps打开.我找到了一些解决方案,将文件复制到外部存储器,然后启动Intent,但这个过程打破了MODE_PRIVATE选项的安全性目的,对吧?

谢谢阅读

Com*_*are 10

如何打开并显示下载的PDF文件?

创建一个ContentProvider以提供PDF文件,然后使用ACTION_VIEW IntentUri您的ContentProvider一起在用户选择的PDF查看器中打开它.

此示例项目演示了如何从内部存储器提供PDF文件.