1

我想知道任何人都可以帮助我解决我遇到的问题。我看过很多相同问题的帖子,但我仍然无法解决这个问题。我创建了一个 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);
4

2 回答 2

4

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

将文件复制到文件系统会更好。如果你将它复制到外部存储,你可以在上面打开一个 PDF 查看器。如果您将其复制到内部存储 - 默认情况下,您的应用程序私有 - 您可以创建一个ContentProvider以将 PDF 提供给查看器。此示例应用程序演示了后一种方法。

于 2013-01-15T17:18:04.687 回答
0

确保不要忘记您的应用访问外部文件的权限。将这两行放在清单中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2015-04-02T16:51:51.963 回答