在 Android Nougat 中打开 PDF 文件时显示空白屏幕

2023-12-23

我正在创建一个 PDF 文件并将其保存在本地存储中。当尝试打开它时,它在除 Android N 之外的所有设备上都能完美运行。我可以使用 FileProvider 在 Android N 中打开 PDF 文件,但它显示为空白。

这是我的 URI

content://com.products.provider/external_storage_root/Android/data/com.products/in_17052017_170502_1_1001.pdf

这是我的代码

Uri path;

File pdfFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/"
                + "Android" + "/" + "data" + "/" + "com.products" + "/" + file);

if (Build.VERSION.SDK_INT >= 24) {
            path = FileProvider.getUriForFile(getActivity(), "com.products.provider", pdfFile);
        } else {
            path = Uri.fromFile(pdfFile);
        }

        // Setting the intent for pdf reader
        Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
        pdfIntent.setDataAndType(path, "application/pdf");
        pdfIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        pdfIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

        try {
            startActivity(pdfIntent);
        } catch (ActivityNotFoundException e) {
            Toast.makeText(getActivity(), "Can't read pdf file", Toast.LENGTH_SHORT).show();
        }

问题在于您如何在意图上设置标志

pdfIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

相反,试试这个:

pdfIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
pdfIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Nougat 中打开 PDF 文件时显示空白屏幕 的相关文章

随机推荐

  • Pandas 图,vars() 参数必须具有 __dict__ 属性?

    它之前工作得很好 但由于某种原因 现在我遇到了奇怪的错误 熊猫版本 1 2 3 matplotlib 版本 3 7 0 示例数据框 df cap Date 0 1 2022 01 04 1 2 2022 01 06 2 3 2022 01
  • 在链接点击的另一个网站上使用相同的 php 会话

    我有个问题 假设我在网站上域名1 com我点击一个链接域名1 com这让我想到域名2 com 但我想用同样的session id 设置为session start in 域名1 com on 域名2 com 我如何在 PHP 中实现这一点
  • 处理 nls - R 脚本中的 0 错误

    有什么方法可以让我的 nls 在进行非线性拟合时具有 0 残差误差吗 我的数据中有一些情况 其中拟合应该有 0 错误 但 nls 总是失败并吐出错误 谁能告诉我 如何测试这是否是 nls 吐出的错误 如何允许 0 错误情况 完美契合 这是我
  • React Native XCode 项目产品存档因架构 arm64 的重复符号而失败

    奇怪的是 我似乎无法让 Archive 在 XCode 中工作 但如果我不尝试 Archive 而只是构建发布版本 则构建会成功 并且不会出现重复符号的错误 该项目也可以在设备上正确构建 我已经搜索了这个主题并尝试禁用可测试性 并将项目设置
  • 此环境中不提供编译器。也许您正在 JRE 而不是 JDK 上运行?

    我正在使用 m2eclipse 在 Eclipse 中编译一个项目 我在Eclipse中设置JDK路径如下 Windows gt preferences gt installed jres gt jdk1 7 xx path 但这显示错误
  • MongoDB 与 Grails Scaffolding 的问题(在 MySQL 中不会发生)

    我尝试使用 MongoDB 2 0 6 替换 MySQL 5 5 25 来测试 Grails 2 1 应用程序 但遇到了一些奇怪的问题 使用 MongoDB 但不使用 MySQL 时出现的问题 使用脚手架时 我无法使用静态约束对字段进行排序
  • 为什么要使用 CGRectMake 这样的函数?

    我很好奇为什么像 CGRectMake 和 CGPointMake 这样的函数存在并被广泛使用 相反 您可以执行以下操作 CGRect x y width height 由于没有函数调用 这肯定更有效 尽管我猜效率不是很高 您还可以设置原点
  • 西纳特拉与费加罗宝石

    我正在尝试将 Figaro gem 与 Sinatra 一起使用 我已经安装 Figaro 并创建了以下文件 文件夹 config application yml 在此文件中我添加了一些环境变量 ENV GMAIL USERNAME ENV
  • TypeScript - 输入 'number | undefined' 不能分配给类型 'number'

    这是我的代码 var a number a 4 var myArr number myArr 1 2 3 myArr push 1 a myArr pop 当我将 module 在我的 tsconfig json 文件中 设置为 syste
  • Java 1.7:Iterable 之和

    我需要创建一个辅助方法 它允许创建任何 Iterable extends Number gt 因为我们有很多向量并且需要一个快速的方法来确定总和 所以我创建了以下方法 static Integer sum Iterable
  • Internet Explorer 保护模式错误

    我在 Visual Studio 中的代码使用 selenium webdriver 2 24 0 我使用的测试框架是 Nunit 我的代码工作得很好 加载不同的浏览器 驱动网站 直到 2 24 0 版本发布 我将新的 IE 独立服务器添加
  • 在 C# 中将 SVG 字符串转换为位图(理想情况下在内存中)

    我使用下面的代码将 SVG 字符串 svgString 转换为位图 myBitmap 理想情况下 我想避免往返硬盘 你认为这可能吗 没有找到太多 SVG nuget 包的文档 顺便说一句 我知道我也可以将 bmp 写入硬盘 但我选择了 pn
  • 如何控制 Chart.JS 饼图图例的位置及其外观?

    我可以使用 Chart JS 和以下代码创建饼图 HTML div div
  • EGit 的兼容性 - 还是有替代方案?

    我正在使用 Eclipse 进行开发 并使用 git 和 gitorious 管理我的存储库 到目前为止 我在命令行上使用 git 我四处寻找将 git 集成到 Eclipse 中的方法 并找到了 EGit 两年前也有人问过这个问题 htt
  • 相当于 Java 的 AtomicMarkableReference 的 C++ 11 原子库是什么

    需要这个调用来实现无锁链表 AtomicMarkableReference 是 java util concurrent atomic 包中的一个对象 它封装了对 T 类型对象的引用和布尔标记 这些字段可以一起或单独原子更新 谢谢 假设对象
  • 缩放不适用于包含驾驶路线的谷歌API地图[重复]

    这个问题在这里已经有答案了 我有一个 html 页面 其中包含一张地图 显示从教堂到婚宴的路线 地图上还有 六个标记 每个标记都有一个信息窗口 显示附近的酒店 路线的起点和终点标记已替换为自定义图标 这一切都工作得非常好 除了无论我将缩放设
  • 在 php 中读取然后覆盖文件内容的最佳方法是什么?

    php 中打开文件 读取内容并随后使用基于原始内容的一些输出覆盖文件内容的最干净方法是什么 具体来说 我试图打开一个填充有项目列表 以换行符分隔 的文件 处理 添加项目到列表中 从列表中删除最旧的 N 个条目 最后将列表写回到文件中 fop
  • MySQL 和 php 中独特的文本字段

    我使用以下方法创建了盐 md5 兰特 0 10000000 可能有更好的方法吗 MYSQL 中似乎无法使文本字段唯一 那么如何检查盐是否已经被以前的用户使用过呢 或者我应该根据当前日期 时间生成盐 因为 2 个用户不可能同时注册 对吗 对于
  • 使用 iText 从 pdf 文件中提取一页

    我想使用 itext 库从 java servlet 的 pdf 文件返回一页 以减少下载文件大小 使用此代码 try PdfReader reader new PdfReader input Document document new D
  • 在 Android Nougat 中打开 PDF 文件时显示空白屏幕

    我正在创建一个 PDF 文件并将其保存在本地存储中 当尝试打开它时 它在除 Android N 之外的所有设备上都能完美运行 我可以使用 FileProvider 在 Android N 中打开 PDF 文件 但它显示为空白 这是我的 UR