如果我在 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,但如果有必要,我可以做一个。谢谢!
答案 0 :(得分:1)
如果我在 main\res\PDFs\test.pdf 中有一个 PDF 文件,我该如何打开它?
将 PDF 复制到 internal storage 上的文件(例如,在 getCacheDir()
中),然后使用 FileProvider
使其可用于其他应用程序。 This sample Java app 和 its 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
中呈现。