android 读取wps_Android 默认使用wps打开本地文档
最近开发一个需求是使用wps打开本地的文档,所以记录一下方便以后查阅
对于Android 7.0 以后文件的读写 请参照一下链接
https://www.jianshu.com/p/5ebfa842e6c1
如何跳过 7.0对文件访问的权限目前我知道的有以下两点
1、将build.gradle下的targetSdkVersion改成23以下(这个也会跳过6.0的权限,但很多应用平台以后要对这个进行检测,如果不知道6.0权限检测,可能影响APP上架)
2、在Application的onCreate中加入
//解决FileUriExposedException。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
}
代码:
判断手机是否安装了 wps
private boolean isInstall(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();
// 获取所有已安装程序的包信息
List pinfo = packageManager.getInstalledPackages(0);
for (int i = 0; i < pinfo.size(); i++) {
if (pinfo.get(i).packageName.equalsIgnoreCase(packageName))
return true;
}
return false;
}
获取文档类型
private static String getMIMEType(File f) {
String type = "";
String fName = f.getName();
/* 取得扩展名 */
String end = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase();
/* 依扩展名的类型决定MimeType */
if (end.equals("pdf")) {
type = "application/pdf";
} else if (end.equals("m4a") || end.equals("mp3") || end.equals("mid") ||
end.equals("xmf") || end.equals("ogg") || end.equals("wav")) {
type = "audio/*";
} else if (end.equals("3gp") || end.equals("mp4")) {
type = "video/*";
} else if (end.equals("jpg") || end.equals("gif") || end.equals("png") ||
end.equals("jpeg") || end.equals("bmp")) {
type = "image/*";
} else if (end.equals("apk")) {
type = "application/vnd.android.package-archive";
} else if (end.equals("pptx") || end.equals("ppt")) {
type = "application/vnd.ms-powerpoint";
} else if (end.equals("docx") || end.equals("doc")) {
type = "application/vnd.ms-word";
} else if (end.equals("xlsx") || end.equals("xls")) {
type = "application/vnd.ms-excel";
}else if(end.equals("txt")){
type = "text/plain";
}else if(end.equals("html") || end.equals("htm")){
type = "text/html";
} else {
//如果无法直接打开,就跳出软件列表给用户选择
type = "*/*";
}
return type;
}
打开文档
private Intent getWordFileIntent(String Path) {
File file = new File(Path);
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(file);
String type = getMIMEType(file);
if(type.contains("pdf") || type.contains("vnd.ms-powerpoint") || type.contains("vnd.ms-word") || type.contains("vnd.ms-excel") || type.contains("text/plain")|| type.contains("text/html")){
if (isInstall(this, "cn.wps.moffice_eng")) {
intent.setClassName("cn.wps.moffice_eng",
"cn.wps.moffice.documentmanager.PreStartActivity2");
intent.setData(uri);
} else {
intent.addCategory("android.intent.category.DEFAULT");
intent.setDataAndType(uri, type);
}
}else{
intent.addCategory("android.intent.category.DEFAULT");
intent.setDataAndType(uri, type);
}
return intent;
}
应用:
Intent intent = getWordFileIntent("文件路径");
startActivity(intent);
2、如果不是PDF文件
Intent intent = getWordFileIntent(BASE_PATH + list.get(clickPosition).get("fileName"));
try{
startActivity(intent);
}catch (Exception e){
showToast("无可用打开方式,建议下载wps后重试");
}
给用户一个友好提示。
OK,大功告成。
android 读取wps_Android 默认使用wps打开本地文档相关推荐
- Android默认优先使用WPS打开PDF文档
使用第三方App打开PDF文档,当选择使用WPS时,出现提示获取文档类型,一直打不开的情况. 解决办法,首先检测是否安装了WPS软件.如果安装了,则用WPS打开,否则,使用默认工具打开. 具体实现如下 ...
- android 读取wps_Android 实现 调用 WPS Office手机版接口
从V5.1版本开始,WPS移动版本提供了额外的功能,可以供第三方程序通过集成的方式调用"WPS移动版"打开文件,打开的文件保存和关闭时第三方也可接收到广播通知. 通过此接口,开发者 ...
- WPS使用,实现用WPS打开在线文档并且进行编辑
相关资料文档 JSAPI概述及原理 https://kdocs.cn/l/skWT29577eEE JSAPI集成开发文档 https://kdocs.cn/l/srARJ5L8CTx4 JSAPI功 ...
- HTML文件总是WPS打开,设置wps默认打开方式_设置默认使用WPS打开文件
今天有个客户问我,为什么我双击xls文件不能直接用WPS打开,我直接帮他远程调试,发现他wps没有关联默认文件格式. 下面我就教大家如何设置WPS默认打开方式. 测试环境:windows 7 64位 ...
- [Android]_[初级]_[sdk docs reference api 文档打开慢的解决办法]
此题正解:打开firefox, 选中菜单 File->Work Offline,之后打开api文档都是秒开了,缺点就是不能访问在线的网址. 默认菜单是隐藏的,可以移动到Tab页空白处右键Menu ...
- 打开office 文档慢的小技巧1 更改默认打印机
打开office 文档慢的小技巧1 更改默认打印机为本机虚拟打印机 因为word打开时要缓存打开的文件到预览的缓存,如果默认打印机为离线,则office word,excel,ppt等打开有可能稍慢点 ...
- vb wps 链接单元格_vb读取WPS的EXCEL文档并另存为其他
编程之家收集整理的这篇文章主要介绍了vb读取WPS的EXCEL文档并另存为其他,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. Dim xlApp Dim xlApp2 Dim xlBo ...
- 电脑安装了WPS之后,文档无法用原来的office打开,右键新建的文档是wps类型的而不是office类型的解决方案
前言:因为我身边很多小伙伴都遇到自己的电脑已经安装了office,之后又安装了WPS,安装了WPS之后,每次打开文档都是默认用WPS打开,有时想右键新建一个office的文档,但是建立的都是WPS文档 ...
- wps android qq 群,手机WPS怎样发送文档给QQ?WPS怎样发送文档给QQ教程
软件大小: 52.26MB 软件版本: 2.1.0 软件类型: 办公工具 查看详情 直接下载 手机WPS怎样发送文档给QQ?不少刚使用手机WPS的人不晓得怎么操作,那么下面来看看WPS怎样发送文档给Q ...
最新文章
- URAL 1011 Conductors
- 研究javascript中的this
- java网络编程实例_关于java网络编程的实例代码
- egret键盘事件监听
- react js 按条数 展开/折叠
- MURAL:消除预训练模型的语言限制!Google提出跨语言的多模态、多任务检索模型MURAL...
- 在 Queue 中 poll()和 remove()有什么区别?
- linux c 创建新线程,Linux C Phread 入门1---线程创建
- 计算机组组内培训记录,计算机教研组活动记录
- 跨5合并dnf无限连接服务器,不妨一试!跨5等跨区卡登陆卡黑屏解决办法分享
- Windows10上安装EPLAN无法连接虚拟加密狗的解决方法
- rubyonrails安装
- Ubuntu安装无线网卡驱动
- android支付宝支付界面设计,支付宝移动端App ui界面设计规范
- android小米手机变慢,手机越来越慢怎么破?小米手机七大加速绝招
- 【云计算的1024种玩法】搭建 wiki 知识库
- Vue computed自动计算对象中的属性
- bind dlz mysql ptr_Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
- Git创建分支和查看分支命令
- 三步完整实现运放负反馈电路稳定性设计