首页 > 其他分享 >WPS二次开发系列:打印流程大突破!Android 如何一步获取WPS内文档

WPS二次开发系列:打印流程大突破!Android 如何一步获取WPS内文档

时间:2024-03-27 14:31:27浏览次数:28  
标签:打印 WPS MainActivity 文档 二次开发 Android fileUri SDK

前言

当前市面上几乎所有的打印软件都支持WPS/微信/QQ/钉钉的文档进行打印,但是其实现方案均为需要引导用户进入对应的app选择分享或发送到打印app进行打印,其根本原因在于打印app无法直接获取到WPS/微信/QQ/钉钉等应用内的文档列表,且由于现有的android11之后的文件架构,更是无法获取到应用私有文件目录下的文档

市面上大部分打印应用现状: 

已接入SDK的某打印应用现状:

那么如何直接获取到WPS内的文档呢?

现在借助于WPS提出的二次开发sdk,可以轻松的从任何app内选择WPS的文档进行打印,甚至可以选择WPS的云文档进行打印,相比之前的操作方案需要7-8步完成,新的获取逻辑将直接降低用户的操作至一步完成,大大降低操作繁琐导致的用户放弃操作的情况。下面先看看Demo效果吧~

效果展示

如图所示,点击按钮之后,将直接打开WPS的文档选择页,支持最近文档/云文档/本地文档三种方式,选择文件后可以直接返回到原有的app,操作无割裂感,顺滑无比,那么不废话了,直接开干!

实现步骤

通过WPS社区文章:  解锁WPS二次开发新世界:Android开发用户专属极速接入秘籍!获取相关WPS-SDK集成资料,然后一步步实现完成,先将如何获取WPS端内文档详细步骤总结如下:

添加依赖库

将WPS提供集成资源压缩包里面libs相关的aar文件集成到自己的工程中,具体申请方式,参考:

【金山文档】 WPS SDK集成资料申请

https://365.kdocs.cn/l/clq8BwkjL5lF

SDK初始化

在自己工程Application的onCreate方法中调用SDK的初始化Api, 参考如下

SdkConfig config = new SdkConfig.Builder()
   //开启日志开关
      .setEnableDebug(true)
    //是否禁止弹出安装更新提示框
      .build();
//初始化
WpsSdk.getInstance().init(this,config);
调用获取WPS端内文件功能接口

调用相关API接口,调起WPS文件选择器

参考如下:

 FileManagerApi fileManagerApi = WpsSdk.getInstance().getApi(FileManagerApi.class);
        if (fileManagerApi != null) {
            fileManagerApi.selectFiles(MainActivity.this, new ResultCallback<Uri>() {
                @OverridepublicvoidonCallback(Result<Uri> result){
                    if (result.code == 0) {
                        Uri fileUri = result.data;
                        Log.d("WpsSdkLog", "MainActivity selectFiles onCallback 转换输出路径:fileUri=" + fileUri);
                        //从WPS路径拷贝到第三方应用路径//                        String outFile = FileUtil.copyFileFromUri(MainActivity.this, fileUri, "output");//                        Log.d("WpsSdkLog", "MainActivity selectFiles onCallback: outFile=" + outFile);
                        Toast.makeText(MainActivity.this, " 选择的文件路径:" + fileUri, Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, " 出现异常:" + result.msg, Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }

PS: 详细可参考 WpsSdkDemo工程 中MainActivity中的selectWpsFiles方法

至此,如何实现在打印应用中集成WPS-SDK调用WPS文档选择器的功能完成,是不是超级简单,而且体验完全可以提升一个量级,如果能够帮助到您,请动动发财的小手来个一键三连

标签:打印,WPS,MainActivity,文档,二次开发,Android,fileUri,SDK
From: https://blog.csdn.net/weixin_43880576/article/details/136900598

相关文章

  • Android Zygote 启动流程
    Zygote进程介绍介绍在Android中,DVM、ART、和应用程序进程以及系统关键服务的SystemServer进程都是由Zygote进程创建,它被称为孵化器通过fork方式,创建应用程序进程和SystemServer进程,由于Zygote进程在启动的时候会创建DVM或者ART,因为通过fork而创建的应用程序......
  • Android原生ViewPager控件实现卡片翻动效果
    本文实例为大家分享了Android控件ViewPager实现卡片翻动效果的具体代码,供大家参考,具体内容如下先放一张效果图:想要实现这样的效果其实并不是太难,需要对ViewPager的一些细节属性更深入的了解和认识,下面介绍下一个小demo的实现过程:**第一步、**创建卡片viewpager适配器的i......
  • 【Android面经】腾讯扩招了,离我进腾讯还会远吗?
    前言互联网回暖,腾讯扩招5000+,今天给大家分享一下腾讯三面顺利通过,都考了些啥?首先介绍一下我的BG,学长我,双非本硕计算机,在秋招的鞭策下,顺利在春招拿到offer希望我的经验也能帮助到你们,祝大家成功上岸。腾讯一面:1.记录uv(UniqueVisitors)为什么用set不直接计数?2.i......
  • Android Studio Iguana | 2023.2.1 补丁 1
     AndroidStudioIguana | 2023.2.1Canary3已修复的问题AndroidGradle插件问题295205663将AGP从8.0.2更新到8.1.0后,任务“:app:mergeReleaseClasses”执行失败问题298008231[Gradle8.4][升级]由于使用kotlingradle插件中已废弃的功能,升级后集成测试......
  • Android中运动事件的处理
    1.目录目录1.目录2.前言3.程序演示4.第二种程序示例5.扩展2.前言        触摸屏(TouchScreen)和滚动球(TrackBall)是Android中除了键盘之外的主要输入设备。如果需要使用触摸屏和滚动球,主要可以通过使用运动事件(MotionEvent)用于接收它们的信息。触摸屏和滚动球......
  • WPS二次开发系列:如何对打开文档路径FileUri授权
    1.什么是FileProvider若要安全地将应用中的文件提供给其他应用,您需要配置应用,以内容URI的形式提供文件的安全句柄。AndroidFileProvider组件会根据您在XML中指定的内容生成文件的内容URI。这部分知识是AndroidFileProvider通用知识,详细请参考FileProvider2......
  • Android Framework system_server进程启动
    哈喽大家我是Zzz.今天分享的blog是system_server进程的启动,环境基于aosp13_r6,话不多说直接上干货前言:system_server是系统核心服务的一个进程,这个进程包含了系统中核心Service的运行,给系统提供如:Window的管理、Activity的管理,系统的核心功能都在System_server中;在ZygoteIni......
  • Android Studio 模拟器 安卓12 安装Magisk
    本文脚本修改自github上的一个脚本。环境为MacOS-Arm版1.创建一个目录mkdirmagisk-sh2.下载Magiskapk可以去github上下载,链接:https://github.com/topjohnwu/Magisk/releases本文采用v26.1版本下载完成之后,可以直接拖入模拟器中安装还需要将magiskapk文件放入刚才创......
  • Android 开发艺术探索笔记(15)(1),金三银四旗开得胜
    drawable.start();帧动画比较简单,但容易引起OOM,所以在使用帧动画时,尽量避免使用过多尺寸大的图片。View动画的特殊使用场景View动画还可以在ViewGroup中控制子元素的出场效果,在Activitiy中可以实现不同Activity之间切换效果。具体用到的类是LayoutAnimation和overridePen......
  • Android开发两年,我要跳槽去阿里巴巴了,做个阶段总结
    Host:www.baidu.comContent-Type:text/plain//Body搜索****2)响应报文//状态行(包括HTTP版本、状态码,状态信息)HTTP/1.1200OK//HeadersContent-Type:application/json;charset=utf-8//Body[{“info”:“xixi”}]3)常用状态码主要分为五种类型:1开头,代表临时......