android - 无法在android应用程序中打开pdf文档

标签 android pdf assets

我想知道任何人都可以帮助我解决我遇到的问题。我看过很多关于同一问题的帖子,但我仍然无法解决这个问题。我已经创建了一个 PDF 文档。我已将我创建的 PDF 文件放入我的 res/raw 文件夹中(我也尝试放置在 Assets 文件夹中)并且我试图在我的应用程序中打开它。当我单击该按钮时,它会打开一个对话框,我可以选择使用 adobe reader、amazon kindle 或 polaris office 来完成操作。但是当我尝试打开 pdf 时,我收到一条错误消息“无法打开该文档,因为它不是有效的 PDF 文档”。

以下是我用来尝试打开 pdf 的代码,有人知道为什么这行不通吗?

String fileName = "android.resource://" + getPackageName() + "/" + R.raw.user_manual_v1_0_0;            
File file = new File(fileName);

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");

startActivity(intent);

最佳答案

它不会工作,因为很少(如果有的话)PDF 查看器设置为从资源中打开 PDF,并且没有人可以直接从 Assets 中读取。

将文件复制到文件系统会更好。如果将其复制到外部存储,则只需在其上打开 PDF 查看器即可。如果您将它复制到内部存储——默认情况下,您的应用程序私有(private)——您可以创建一个 ContentProvider 来为查看者提供 PDF。 This sample application演示了后一种方法。

关于android - 无法在android应用程序中打开pdf文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343086/

相关文章:

symfony - 允许 bundle 扩展 Assetic 的 Assets 配置

android - 如何使用区域设置和配置在我的语言更改时选择不同的 Assets 文件?

android - 通过 JSON 在 android 中作为 ListView 的 Mysql 查询结果

Android NDK 和 FFMPEG 构建

java - 如何在Android中的WebView中显示PDF?

java - 使用 itext 从 html 生成 pdf 时不采用 CSS 样式

android - 什么时候从 UI 线程本身发布到 UI 线程是可取的?

java - 尝试在空对象引用上调用虚拟方法 'java.lang.Class java.lang.reflect.Field.getType()'

javascript - 提供的数据不是 ReactJS 中有效的 base64 字符串 jsPDF

android从 Assets 文件夹中共享图像