Android 中打开 pdf 文件的限制

2024-02-16

我正在尝试从 Android 应用程序中打开一些 pdf 文件。我正在使用 Intent 来执行此操作:

Intent intent = new Intent();
intent.setDataAndType(Uri.parse(url), "application/pdf");
startActivity(intent);

这段代码对于某些 pdf 效果很好,但当我尝试打开其他 pdf 时却失败了。

这是 Android 向我显示的消息:

文件有问题。

我必须提到的是,打开时没有问题的 pdf 是使用一个 Crystal Report 模板创建的,而打开失败的 pdf 是使用另一个模板创建的。

相反,如果我打开在我的浏览器(在我的计算机上)上失败的 pdf 的 url,它不会给我任何打开它们的错误,所以我猜想 Android 上可能存在一些限制,与某些 pdf 不同另一个(在水晶报表模板上)但我看不到它。

在 Android 上打开 pdf 文件有什么限制? (大小、水晶报表的一些不允许的参数等等……)

我已经放弃了这可能是一个大小限制,因为出现问题的 pdf 文件比没有出现任何错误的文件小。

证明我已经做到了:

  • 在浏览器上打开错误的 PDF ~~> 好的
  • 在手机上下载错误的PDF并打开~~> OK
  • 在APP上打开错误的PDF ~~>Error
  • 在PDF崩溃的公司APP上打开好的PDF ~~> OK

EDIT

我注意到我正在使用http://协议,但 PDF 位于https://协议,所以我已经改变了它Uri.parse method.

当我进行此更改时,应用程序崩溃并在日志中显示错误:

android.content.ActivityNotFoundException:找不到处理 Intent 的 Activity

另外,我注意到 PDF 没有给我任何错误,其网址为http://协议而不是https://所以我猜https://协议可能是问题所在。

我只能打开吗http://请求意图?


可能是 Android PDF 查看器应用程序无法解释该文件。 您是否尝试过将完全相同的文件复制/下载到您的 Android 手机并从那里打开?

另外,我建议使用 IntentChooser 启动 PDF 查看器,只是为了在未安装 PDF 查看器时安全/为用户提供选择应用程序的选项:

Intent intent = new Intent();
intent.setDataAndType(Uri.parse(url), "application/pdf");
Intent chooserIntent = Intent.createChooser(intent, "Open Report");
startActivity(chooserIntent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中打开 pdf 文件的限制 的相关文章

随机推荐

  • UWP ListView DataTemplate 绑定到项目而不是属性

    如何将数据模板中的项目绑定到项目本身 而不是该项目的属性 我有一个将项目作为模型的用户控件 鉴于这些模型 public class Car public string Name get set public Color color get
  • QImage/QPixmap 大小限制?

    是否有任何已知的尺寸 空间限制QPixmap and or QImage记录的对象 我没有找到任何与此相关的有用信息 我目前在 OSX 和 Windows 上使用 Qt 4 7 3 我特别感兴趣的是 宽度 高度限制 限制取决于颜色格式 32
  • UTF-8 和 ISO-8859-1 有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么区别UTF 8 https en wikipedia org wiki UTF 8 and ISO 8859 1 https e
  • JSF:commandLink 作为 outputFormat 的参数

    我正在国际化一些 JSF 文件 因此正在外部化字符串 以及使用占位符的字符串连接 我对 JSF 的经验很少 今天和昨天 所以如果我的问题有一个明显的答案 请原谅 我一直在成功地使用 h outputFormat 标记 和 f param 标
  • 用户窗体根据屏幕分辨率调整大小

    我有一个 Excel 用户表单 我想在打开时调整大小以适应屏幕分辨率 我通过得到高度和宽度Application Height and Application Width 通常使用这两个参数和以下代码 应该可以解决问题 Me Top App
  • 以编程方式最大化窗口并防止用户更改窗口状态

    如何以编程方式最大化窗口 以便窗口一旦打开就无法调整大小 达到最大化状态 例如 最大化 Internet Explorer 并查看它 我将 FormWindowState 属性设置为 this WindowState FormWindowS
  • 检测视图中的任何触摸(iPhone SDK)

    我目前正在使用 void touchesBegan NSSet touches withEvent UIEvent event void touchesEnded NSSet touches withEvent UIEvent event
  • 在 Electron 中使用量角器

    我正在尝试为我运行的应用程序设置单元测试和 e2e 测试Electron http electron atom io using 量角器 https angular github io protractor 我参考了很多不同的帖子 this
  • Rails 渲染路线路径

    我对 Rails 还很陌生 很难理解 Rails 中路径系统的工作原理 在我的routes rb中 我创建了一个用于注册的别名 match signup gt user new resource user controller gt use
  • 数据路径 '''' 不应具有附加属性 (es5BrowserSupport)

    尝试在 Angular 中开始 在 CLI 中创建项目后 我尝试使用两者打开项目ng serve o and npm start但我收到以下错误 Schema validation failed with the following err
  • 线程与并行,它们有何不同?

    线程和并行有什么区别 哪一个比另一个有优势 Daniel Moth 我的前同事 线程 并发与并行 http www danielmoth com Blog 2008 11 threadingconcurrency vs parallelis
  • 为什么 Firefox 忽略基于范围查询的缓存控制?

    Web 服务器能够将媒体 本例中为音频 传输到浏览器 浏览器使用 HTML5 控件来播放媒体 然而 我发现 Firefox 正在缓存媒体 尽管我 相信我 明确告诉它不要这样做 我有预感 它与 206 部分内容响应有关 因为带有完整 200
  • 在分页期间获取SQL Server中记录总数的有效方法

    当查询 sql server 中的表时 我试图仅获取当前页的记录 但是 我需要为特定查询返回的记录总数来计算页数 如何在不编写另一个查询来计算记录的情况下有效地执行此操作 WITH allentities AS SELECT Row num
  • 错误 CS0106:修饰符“private”对于此项无效 Unity 中的 C# 错误

    我不断收到此错误 CS0106 修饰符 私有 对此项目无效 并且需要一些帮助 我正在尝试为我的游戏制作一个随机对象生成器 但由于我仍然是新手编码器 我似乎不知道如何解决这个问题 你能帮忙的话 我会很高兴 这是我使用的代码 using Sys
  • 谷歌地图可以根据小时分钟秒绘制点吗

    我正在尝试绘制以时分秒秒格式提供给我的 GPS 数据 GLatLng 会采用这种形式吗 还是我需要先转换它 很难在互联网上找到与此相关的任何内容 如果可以采用这种格式 我们将不胜感激 据我所知它不接受这种格式 但转换它真的很容易 只需计算一
  • Python 中的最佳 ETL 包

    我有两个用例 从 Oracle PostgreSQL Redshift S3 CSV 提取 转换并加载到我自己的 Redshift 集群 安排作业每天 每周运行 INSERT TABLE 或 INSERT NONE 选项更好 我目前正在使用
  • 如何在android中为不同类型的标记指定onMarkerclick()

    在谷歌地图上 我为不同的目的放置不同颜色的标记 在这里我想要每个标记的 onMarkerclick 具有不同的功能 例如 所有绿色标记 如何为此创造条件 这是我创建一组的代码标记数 Override public void onMapLon
  • 如何为 UIFontMetrics 指定最小 UIContentSizeCategory?

    我有一种基于动态类型创建自动缩放字体的方法 如下所示 extension UIFont public static func getAutoScalingFont fontName String textStyle UIFont TextS
  • 使用 conda env 的 apache-airflow systemd 文件

    我正在尝试奔跑apache airflow在 Ubuntu 16 04 文件上 使用 systemd 我大致跟着本教程 https github com hgrif airflow tutorial并安装 设置以下内容 Miniconda
  • Android 中打开 pdf 文件的限制

    我正在尝试从 Android 应用程序中打开一些 pdf 文件 我正在使用 Intent 来执行此操作 Intent intent new Intent intent setDataAndType Uri parse url applica