Android 打开 pdf 不起作用

2024-01-30

一段时间以来我一直在努力让它发挥作用。我在这里看到了有关如何从 Android 打开 pdf 的其他问题,普遍的共识是我下面的代码。我错过了什么吗?

    try
    {
        Uri path = Uri.parse("android.resource://com.TeamGLaDOS.DayTradeSim/" + R.raw.teamdoc);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(path, "application/pdf");
        this.startActivity(intent);
    }
    catch(ActivityNotFoundException e)
    {
        Toast.makeText(this, "No Application Available to view PDF",     Toast.LENGTH_SHORT).show();
    }

Edit:它总是抛出 ActivityNotFoundException 并显示 Toast。

异常信息是这样的:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.TeamGLaDOS.DayTradeSim/2130968576 typ=application/pdf }

Edit 2:我安装了 pdf 应用程序 (Aldiko),并且之前使用其他应用程序在 Aldiko 中启动 pdf。


您的 URI 被适当地构造为通过 ID 访问原始资源,但这并不意味着所有 PDF 阅读器都会使用android.resource://数据 URI 方案。 它在一定程度上取决于用户设备上安装的 PDF 阅读器应用程序的实现,但许多检查不仅仅是您意图中设置的 mimeType。例如,Adobe Reader 将解析任何带有file:// URI, content://URI,或者根本没有 URI(只有 mimeType),但它不会解析直接指向资源的 URI。

为了尽可能通用,您应该首先将要从资产/资源中读取的任何 PDF 文件复制到文件系统(内部或外部存储,只要文件创建为外部可读即可)。然后将带有 URI 的意图传递给文件实例,总体来说您应该会运气好得多。

快速测试表明 Aldiko 仅响应带有file://URI 和“application/pdf”mimeType,甚至 Adob​​e Reader 都无法解决的其他选项...所以这就是您的赢家。

HTH

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

Android 打开 pdf 不起作用 的相关文章

  • 使用 PhoneGap 使 Android 应用程序易于访问(对于残障人士)

    有人有过使用 PhoneGap 使 Android 应用程序可访问的经验吗 至少我们需要使我们的应用程序符合第 508 条规定 我尝试实现一些标准的辅助功能 文本框标签 向 div 添加标题属性等 但是 当在 Android 中使用 Tal
  • 在 Netbeans 8 上配置 JBoss EAP 的问题

    我已经下载了 JBoss EAP 7 并正在 Netbeans 8 上配置它 我已经到达向导 实例属性 其中要求从选择框中选择 域 当我打开选择框时 它是空的 没有什么可以选择的 因此 完成 按钮也处于非活动状态 这使得无法完成配置 我通过
  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • Android:滚动 Horizo​​ntalScrollView 时如何禁用 ScrollView 的垂直滚动?

    我正在开发一个带有带有 ScrollView 的 Activity 的 Android 应用程序 其中包含 Horizo ntalScrollView 等内容 当我触摸 Horizo ntalScrollView 时 我想禁用外部 Scro
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • Android 后台服务示例,具有交互式调用方法

    我不是 Android 方面的专家 我正在寻找一个 Android 应用程序的示例 该应用程序使用一个服务 其中有真正的功能方法 或者换句话说 一个服务可以用来做什么 我们什么时候需要它 超越简单的东西服务举例 我确信您渴望获得一些工作代码
  • 欧洲中部时间 14 日 3 月 30 日星期五 00:00:00 至 日/月/年

    我尝试解析格式日期Fri Mar 30 00 00 00 CET 14至 日 月 年 这是我的代码 SimpleDateFormat formatter new SimpleDateFormat dd MM yyyy System out
  • 如何在 Viewpager 中禁用预加载下一页? [复制]

    这个问题在这里已经有答案了 如何在 Viewpager 中禁用页面预加载 I tried viewPager setOffscreenPageLimit 0 但它不起作用 用这个viewPager setOffscreenPageLimit
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • Android 中循环事件的星期几和时间选择器

    我想创建一个控件 允许用户在我的 Android 活动中选择一周中的某一天 星期一 和一天中的某个时间 下午 1 00 找不到任何关于此的好帖子 好吧 我想我已经明白了 我只是不喜欢这个解决方案 因为我在一周中的某一天使用的微调器与时间选择
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android
  • 使用单选按钮更改背景颜色 Android

    我试图通过从单选组中选择单选按钮来更改应用程序选项卡的背景 但是我不确定如何执行此操作 到目前为止我已经 收藏夹 java import android app Activity import android os Bundle publi
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • 如何在纯 HTML5/CSS/Jquery 中显示 epub 格式的书籍

    是否可以使用纯 HTML5 CSS 和 Jquery 在网络浏览器中显示 epub 格式的书籍 有人可以建议我该怎么做吗 我还必须使其响应式才能使其在 iPad 上运行 我知道这一点 但我不知道如何使用 HTML 和 Javascript
  • 有没有一种简单的方法可以使用 Windows 10 在 R Markdown 上运行 bash 脚本?

    过去几个月我一直在学习 R Markdown 让 Anaconda Python 在 R Markdown 脚本中运行相当容易 但我还没有找到在同一文档中运行 bash 代码块的方法 Using bash echo hello world
  • qooxdoo 中的无限滚动与虚拟列表

    我创建了一个虚拟列表 当用户在列表顶部或底部滚动时 新数据将添加到虚拟列表的模型中 这似乎工作正常 我的问题是虚拟列表的项目具有不同的高度 因此我需要它们能够在出现在用户屏幕上之后或之前自行配置行高 为此 我在绑定委托中添加以下代码 ite
  • 如何设置散景网络图中的节点大小和颜色?

    如果我们以标准空手道俱乐部为例 如何根据节点的程度更改节点的颜色和大小 import networkx as nx from bokeh io import show output file from bokeh models import
  • 如何检测用户更改表?

    在电子表格中打开特定工作表时如何检测并触发自定义操作 我找不到正确的功能https developers google com apps script guides triggers events https developers goog
  • C# 中的代理基本身份验证:HTTP 407 错误

    我正在使用需要身份验证的代理 即 在浏览器中 如果我尝试打开页面 它会立即要求提供凭据 我在程序中提供了相同的凭据 但失败并出现 HTTP 407 错误 这是我的代码 HttpWebRequest request HttpWebReques
  • 如何隐式从本地分支“X”到“origin/Y”的“git push”

    假设你的起源上有一个分支 它的名字长得可笑 gt git branch a master origin master origin branch with a ridiculously long name 当你在本地的那个分支上工作时 你想
  • env: python\r: 没有这样的文件或目录

    我的Python脚本beak包含以下 shebang usr bin env python 当我运行脚本时 beak I get env python r No such file or directory 我之前从存储库中提取了这个脚本
  • Android 1.6 中捆绑了哪个版本的 Apache HTTP 客户端?

    我想要一个单独的项目 在普通 JVM 中运行我的服务器通信代码 以进行集成测试 此代码使用这些内置于 Android 框架中的库 http developer android com reference org apache http cl
  • 循环遍历一个对象并找到非空属性

    我有两个相同对象的实例 o1 和 o2 如果我正在做类似的事情 if o1 property1 null o1 property1 o2 property1 对于对象中的所有属性 循环遍历对象中的所有属性并执行此操作的最有效方法是什么 我看
  • 如何获取 clojure 嵌套结构中给定键的所有值

    def threads values id t1 u uid 1 members values uid 1 uid 2 messages values id m1 u uid 1 id m2 u uid 2 id t2 u uid 12 m
  • dnu 发布 - System.ArgumentNullException:值不能为 null

    当运行以下命令时dnu publish 我抛出一个 ArgumentNullException 异常 dnu publish C Project MyProject out C a configuration Debug runtime d
  • 部分类中的属性未出现在数据源窗口中!

    实体框架已创建所需的部分类 我可以将这些部分类添加到 数据源 窗口 并且属性将按预期显示 但是 如果我在单独的源文件中扩展任何类 即使在构建和刷新之后 这些属性也不会出现在 数据源 窗口中 跨源文件的分部类中的所有属性在 数据源 窗口中按预
  • 按主机名端口重定向到 docker 容器

    我想设置从一台服务器为多个站点提供服务 1 http www example org gt node js www running on port 50000 2 http files example org gt node js file
  • 如何在Android应用程序中制作自定义日历?

    我必须为 android 2 1 2 3 制作一个内置日历控件的应用程序 我曾尝试搜索内置和外部库来实现此目的 但未能成功 因此现在我决定自己编写日历 我想通过GridView 我该怎么办呢 如果有可用的代码 请在此处生成 这确实非常有帮助
  • 对于最新的 Unicode 字符,我应该使用哪种字体?

    注意 它们并不新鲜 只是 不支持 不知何故 我正在尝试为我的网站上的元素制作简单的控件 类似于简单的 静音 或 不静音 控件 但是 我还没有找到任何能够处理较新的 Unicode 符号的字体 例如扬声器符号 x1F507 to x1F50A
  • 我的自定义分类 url 链接的页面未显示 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 基本上我有 newsletter php 页面 其中显示所有现有的自定义帖子 从这里 我有一个下拉类别列表 您可以按类别过滤自定义帖子
  • 函数后加分号

    为什么有些人在大括号后面加分号有什么具体原因吗 void foo 不是真的 那里的分号没有区别 这可能是一个习惯问题 如果您愿意 您可以在 C 11 中添加任意多个分号 void foo
  • Windows 10 中的 Django 通道安装失败

    这是环境 操作系统 Windows 10 姜戈 2 0rc Python 3 6 点 10 0 0 视觉工作室社区 2017 以及错误消息 running build ext building twisted test raiser ext
  • Android 打开 pdf 不起作用

    一段时间以来我一直在努力让它发挥作用 我在这里看到了有关如何从 Android 打开 pdf 的其他问题 普遍的共识是我下面的代码 我错过了什么吗 try Uri path Uri parse android resource com Te