Android 应用内打开Word、Excel、PPT、PDF等文档

2023-11-16

Android平台中,可以使用以下几种方式打开Word和Excel文档:

预览图:

一:直接上传给第三方之后用webview打开

        1、微软:

        https://view.officeapps.live.com/op/view.aspx?src=文件链接

        2、XDOC文档预览服务

        http://www.xdocin.com/xdoc?_func=to&_format=html&_cache=true&_xdoc=文件链接

       上面两个链接可以直接放在webview进行加载。

        缺点:文档相当于传递给了第三方,安全性无法保证

二:使用腾讯的X5内核打开

初始化:

        // 设置允许移动网络下进行内核下载。默认不下载
        QbSdk.setDownloadWithoutWifi(true);
        QbSdk.initX5Environment(this, new PreInitCallback() {
            @Override
            public void onCoreInitFinished() {
                // 内核初始化完成,可能为系统内核,也可能为系统内核
            }

            @Override
            public void onViewInitFinished(boolean isX5) {
                Log.e(TAG, "onViewInitFinished: " + isX5);
               
            }
        });

在使用的地方打开文件:

  Bundle localBundle = new Bundle();
         localBundle.putString("filePath", file.toString());
         localBundle.putString("tempPath",
                 tbsReaderTemp);
         if (tbsReaderView == null){
             tbsReaderView = getTbsView();
         }
        //判断是否可以打开文件类型
         boolean result = tbsReaderView.preOpen(FileUtil.getFileType(file.toString()), false);
        Toast.makeText(getApplicationContext(), "预加载结果:" + result, Toast.LENGTH_SHORT).show();
         if (result) {
             tbsReaderView.openFile(localBundle);
         }

官方文档:

腾讯浏览服务

三:使用系统默认的应用打开文档

Android系统默认安装了一些应用,例如WPS Office等,这些应用可以打开常见的Word和Excel文档。如果用户在系统中已经安装了这些应用,可以通过以下代码打开一个文件:

 

java复制代码

String filePath = "/sdcard/test.docx"; Uri uri = Uri.parse("file://" + filePath); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent);

上述代码中,filePath是需要打开的文件路径。使用Uri.parse()方法将其转换成Uri类型,并使用Intent.setAction()方法设置该Intent的操作为ACTION_VIEW。最后使用startActivity()方法启动这个Intent,系统就会根据文件的类型选择合适的应用打开这个文档。

四:使用第三方SDK打开文档

除了系统默认的应用,还可以集成第三方的SDK来打开Word和Excel文档,例如Microsoft Office相关的SDK。这种方式需要开发者首先注册Microsoft的开发者账号,并在开发者控制台中获取相关的权限和应用ID等。在APP中集成SDK之后,可以通过以下代码打开一个文件:

java复制代码

String filePath = "/sdcard/test.docx"; Uri uri = Uri.parse("file://" + filePath); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.setClassName("com.microsoft.office.word", "com.microsoft.office.word.DocumentActivity"); startActivity(intent);

上述代码中,需要注意的是setClassName()方法,该方法用于设置应用的包名和Activity类名,以便启动对应的应用。此外,还需要添加FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_WRITE_URI_PERMISSION权限,以便应用在打开文件时获取文件读写的权限。

资源下载:https://download.csdn.net/download/YDHIT/87921351

APK:DownLoad

个人中心

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

Android 应用内打开Word、Excel、PPT、PDF等文档 的相关文章

随机推荐

  • zsh: command not found: flutter

    因为苹果笔记本重新安装了系统 需要重新安装flutter环境 这里记录一下flutter在安装过程中出现的问题 问题如下 zsh command not found flutter 解决步骤 1 打开open zshrc 2 如果没有就新建
  • Django + vue (一) Django部署

    一 Django 部署 采用REST方式 较简约 1 安装django pip install django 2 2 4 i https pypi tuna tsinghua edu cn simple 2 创建个目录pyvue 并在该目录
  • 求n!的4种方法

    1 循环法 include
  • Java Stream peek的一些坑

    众所周知在Java中使用Stream能够很好地帮我们流处理对象 而Stream中有一个peek方法 它与map最大的区别是它没有返回值 一开始我是简单地把它当做一个void类型的处理方法去使用的 但是后来却发现程序执行到此处时 不进peek
  • 【华为OD机试真题2023B卷 JAVA&JS】跳格子2

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 跳格子2 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 小明和朋友玩跳格子游戏 有 n 个连续格子组成的圆圈 每个格子有不同的分数 小朋友可以选择从任意格子起跳 但是
  • 在Padavan上搭建udp53踩坑总结

    弄了差不多一下午 翻阅了许多帖子都没有能用的解决办法 人又不在家全程远程解决 希望对有相同需求的朋友有帮助 坑一 对于dnsmasq占用53端口的问题 查阅dnsmasq配置手册之后发现 在 etc dnsmasq conf中port缺省的
  • 2019哈工大计算机考研初试复试经历

    一 初试 1 准备阶段 1 1阶段一 我的第一阶段大约是在4月到6月 这阶段一方面我学业课程还比较忙 另一方面当时还要准备竞赛 所以准备不是很充分 只准备了数学 在外面上了数学考研辅导课 大班 不贵 对数学做了第一轮的复习 做了第一波习题
  • Istio二之流量劫持过程

    前面介绍了Istio依赖的Envoy的工作原理 接下来通过实际例子演示Istio是如何完成流量劫持以及流量转发的 首先准备部署两个pod 一个nginx pod作为服务端 一个toolbox pod作为客户端 toolbox只是一个能支持l
  • scanf()函数中%[]格式控制符用法

    此格式控制符的基本格式为 scanfset scanfset 有两种形式 一种是以非 字符开头的 scanset 表示在读入字符串时将匹配所有在 scanfset 中出现的字符 遇到非scanfset 中的字符时输入就结束 另外一种形式是以
  • filco蓝牙键盘配对流程_码字体验飞起的矮轴机械键盘 打字主力键盘妥妥的

    上篇文章 给我的 Macbook Pro 找一个好键盘 最后有小干货 最终决定买 Filco 蓝牙双模红轴 87 键位的键盘 可现实情况是被我退货了 并不是我改主意了 而是当时那个键盘确实有连键问题 还有空格嘎嘎响 连键指的是按 W 的时候
  • 蓝牙(二)蓝牙搜索、配对、连接

    1 搜索 从上一节我们可以知道 蓝牙状态发生了改变 并发生了回调 咱们就从回调开始 DevicePickerFragment java 用于蓝牙设置界面的蓝牙配置和管理 Override public void onBluetoothSta
  • 谷雪梅 Google中国

    转自 http tech qq com a 20060930 000109 htm 相关报道 郭去疾 本地化对Google来说是个伪命题 谷雪梅 Google中国第一位本土女工程师 2005年1月加盟Google 2006年2月调任Goog
  • 有关so-vits-svc-4.0数据处理时out of memory问题

    有关so vits svc 4 0数据处理时out of memory问题 今天使用so vits svc 4 0处理音频数据时 碰到网页报错 out of memory 查看一下代码报错 ImportError DLL load fail
  • RTOS专栏(一) —— rt-thread简单介绍和qemu使用

    本期主题 简单介绍rt thread 介绍qemu和rt thread怎么配合使用 qemu的简单例子 rt thread qemu 1 rt thread介绍 2 qemu介绍 3 搭建rt thread和qemu开发环境 4 简单例子
  • 从零开始学习OpenCL开发(一)架构

    1 Hello OpenCL 这里编写一个最简单的示例程序 演示OpenCl的基本使用方法 1 首先可以从Nvdia或者Amd或者Intel或者所有OpenCl成员的开发者网站上下载一份他们实现的OpenCL的SDK 虽然不同公司支持了不同
  • Qt5.14.2-windows平台配置Qt Creator的ARM体系结构Linux交叉编译器

    1 安装Qt并下载对应源码 下载并安装Qt 下载对应的源码包 windows版本选择zip格式的源码包 Index of archive qt 5 14 5 14 2https download qt io archive qt 5 14
  • LLM本地知识库问答系统(二):如何正确使用LlamaIndex索引

    推荐阅读列表 LLM本地知识库问答系统 一 使用LangChain和LlamaIndex从零构建PDF聊天机器人指南 上一篇文章我们介绍了使用LlamaIndex构建PDF聊天机器人 本文将介绍一下LlamaIndex的基本概念和原理 Ll
  • Markdown语法插入代码

    方法1 1 插入单行代码 code class EnlighterJSRAW 代码内容 code 2 插入多行代码 code class EnlighterJSRAW code code class EnlighterJSRAW 我是代码内
  • el-select结合el-tree实现树形多选

    形式一 业务需求 1 在树形列表中选择项目 2 树形列表需带有筛选过滤功能 3 将已选择的项目展示在输入框中 4 输入框中的选中项可以被单独快速删除 5 下拉框中可再次对之前选择过的项目进行重新选择 实现思路 1 所用技术 vue elem
  • Android 应用内打开Word、Excel、PPT、PDF等文档

    Android平台中 可以使用以下几种方式打开Word和Excel文档 预览图 一 直接上传给第三方之后用webview打开 1 微软 https view officeapps live com op view aspx src 文件链接