如何使用 Android 应用程序打开 PDF 文件?

时间:2021-05-09 23:03:10

标签: java android android-studio

如果我在 main\res\PDFs\test.pdf 中有一个 PDF 文件,我该如何打开它?

我正在考虑做

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("URI of the file"));
                startActivity(browserIntent);

我不知道要在 URI 中放入什么内容,也不知道浏览器是否可以本机打开 PDF。 我的目标是 Android 4.1.3,但如果它无法立即打开 PDF 文件,那么我可以切换到更新的 API 级别,最好尽可能旧。

我宁愿不做 WebView,但如果有必要,我可以做一个。谢谢!

1 个答案:

答案 0 :(得分:1)

<块引用>

如果我在 main\res\PDFs\test.pdf 中有一个 PDF 文件,我该如何打开它?

将 PDF 复制到 internal storage 上的文件(例如,在 getCacheDir() 中),然后使用 FileProvider 使其可用于其他应用程序。 This sample Java appits Kotlin counterpart 正是这样做的。

<块引用>

我不知道要在 URI 中放入什么

资源不是设备文件系统上的文件。没有简单的方法可以直接获取资源的 Uri

<块引用>

我的目标是 Android 4.1.3,但如果它无法立即打开 PDF 文件,那么我可以切换到更新的 API 级别,最好尽可能旧。

任何 Android 设备都不能保证具有响应 ACTION_VIEW Intent 来呈现 PDF 的应用。这是否适用于您的应用取决于:

  • 制造商是否提供了此类应用,或者用户是否安装了此类应用;和
  • 当前用户是否有权运行该应用(并非总能得到保证,尤其是家庭共享设备)
<块引用>

我宁愿不做 WebView

WebView 没有渲染 PDF 的内置功能。<​​/p>

There are other options for rendering PDFs in your own app,具有不同的限制。

如果可能,最好的解决方案是从 PDF 切换到 HTML/CSS/图像,并在 WebView 中呈现。