笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)
打开后缀.apk的文件。即启动安装程序。
//apkFilePath 文件路径
public void installAPK(String apkFilePath) {
// 创建URI
Uri uri = Uri.fromFile(new File(apkFilePath));
Intent intent = new Intent(Intent.ACTION_VIEW);
// 设置Uri和类型
intent.setDataAndType(uri, "application/vnd.android.package-archive");
// 运行安装
mContext.startActivity(intent);
}
/**
* 打开多种类型文件
* @param path 文件路径
* @param type 文件类型
*/
public void openText(String path , int type){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromFile(new File(path ));
//推断文件类型
if (FILE_TYPE_PPT == type) {
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} else if (FILE_TYPE_WORD == type) {
intent.setDataAndType(uri, "application/msword");
} else if(FILE_TYPE_EXCEL == type){
intent.setDataAndType(uri, "application/vnd.ms-excel");
} else if(FILE_TYPE_TXT == type){
intent.setDataAndType(uri, "text/plain");
} else if(FILE_TYPE_PDF == type){
intent.setDataAndType(uri, "application/pdf");
} else if(FILE_TYPE_HTML == type){
Uri htmluri = Uri.parse(path).buildUpon().encodedAuthority("com.android.htmlfileprovider")
.scheme("content").encodedPath(path).build();
intent.setDataAndType(htmluri, "text/html");
}
try {
activity.startActivity(intent);
} catch (Exception e) {
Toast.makeText(mContext, "设备中没有安装支持该格式的程序", Toast.LENGTH_SHORT).show();
}
}
<pre name="code" class="java"> ////////打开多媒体类型
intent.setDataAndType(uri, "audio/*"); //音频
intent.setDataAndType(uri, "video/*"); //视频
intent.setDataAndType(uri, "image/*"); //图片
intent.setDataAndType(uri, "application/x-chm"); //打开chm文件
////推断文件名称是否是某种类型的后缀
private boolean check(final String name, final String[] extensions) {
for (String end : extensions) {
if (name.toLowerCase().endsWith(end)) {
return true;
}
}
return false;
}
/////////////设置类型
if (check(name, ".apk")){
file.setType(FILE_TYPE_APK);
} else if(check(name, ".pdf")){
file.setType(FILE_TYPE_PDF);
} else if(check(name,
getStringArray(R.array.ppt_filter))){
file.setType(FILE_TYPE_PPT);
}
...................
array.ppt_filter:
<array name="ppt_filter">
<item>.ppt</item>
<item>.pptx</item>
</array>
//依据包名卸载apk
private void uninstallPkg(String pkg) {
Uri packageURI = Uri.parse("package:"+pkg);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
//也能够用这样的方法卸载
// getPackageManager().deletePackage(pkg, null, 0);
}
//获取设备存储路径(sd卡,usb)
Environment.getExternalStorageDirectory();
Environment.getExternalStorageDirectory().getParent();
笔记-Android中打开各种格式的文件(apk、word、excel、ppt、pdf、音视频、图片等)的更多相关文章
- 微信小程序云开发-云存储-下载并打开文件文件(word/excel/ppt/pdf)
一.wxml文件 1.写文本框,用来获取文件链接. 2.按钮,点击下载文件 <!-- 下载文件(word/excel/ppt/pdf等) --> <view class=" ...
- 微信小程序云开发-云存储-上传文件(word/excel/ppt/pdf)到云存储
说明 word/excel/ppt/pdf是从客户端会话选择文件.使用chooseMessageFile中选择文件. 一.wxml文件 上传按钮,绑定chooseFile <!--上传文件(wo ...
- 微信小程序云开发-云存储-上传、下载、打开文件文件(word/excel/ppt/pdf)一步到位
一.wxml文件 <!-- 上传.下载.打开文件一步执行 --> <view class="handle"> <button bindtap=&quo ...
- ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架(支持当前主流的浏览器,且浏览器上无需安装任何插件,支持word.excel.ppt.pdf等文档 ...
- [转发]ASP.NET Core2集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
转载自:https://www.cnblogs.com/Andre/p/9549874.html Office Online Server是微软开发的一套基于Office实现在线文档预览编辑的技术框架 ...
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- Android中解析XML格式数据的方法
XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...
- excel打开csv格式的文件,数字末尾都变成零,解决方式
excel打开csv格式的文件,数字末尾都变成零,解决方式
- 第五十六篇、OC打开本地和网络上的word、ppt、excel、text等文件
iOS打开本地和网络上的word.ppt.excel.text等文件 iOS开发过程中可能需要预览一些文件,这些文件的格式可能有word.ppt.excel等文件格式.那么系统提供两个类去预览这些文件 ...
随机推荐
- curl模拟ip和来源进行网站采集的实现方法
对于限制了ip和来源的网站,使用正常的采集方式是不行的.这里说我的一种方法吧,使用php的curl类实现模拟ip和来源,可以实现采集限制ip和来源的网站. 1.设置页面限制ip和来源访问比如服务端的s ...
- C-Linux_毫秒级随机值获取
秒级随机值-常用方法: #include <stdlib.h> #include <stdio.h> #include <stdio.h> #include < ...
- 阿里云oss,简单上传
描述:oss比较方便,省去了自己搭建文件服务器的时间,价格比较便宜,下面是java基于oss的简单上传代码 a.添加maven依赖 <dependency> <groupId> ...
- Java高并发--CPU多级缓存与Java内存模型
Java高并发--CPU多级缓存与Java内存模型 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 CPU多级缓存 为什么需要CPU缓存:CPU的频率太快,以至于主存跟 ...
- Java学习笔记之——枚举类
枚举可以限定类的值只是有限个,例如:星期,只有星期一到星期天 语法案例:
- Java设计模式 - 单例模式详解(下)
单例模式引发相关整理 关联线程安全 在多线程下,懒汉式会有一定修改.当两个线程在if(null == instance)语句阻塞的时候,可能由两个线程进入创建实例,从而返回了两个对象.对此,我们可以加 ...
- 深入源码分析SpringMVC底层原理(二)
原文链接:深入源码分析SpringMVC底层原理(二) 文章目录 深入分析SpringMVC请求处理过程 1. DispatcherServlet处理请求 1.1 寻找Handler 1.2 没有找到 ...
- 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件
在 master 上操作 vi /etc/profile export PATH=/opt/kubernetes/bin:$PATH source /etc/profile 将 kubelet-boo ...
- 小程序实践(二):swiper组件实现轮播图效果
swiper组件类似于Android中的ViewPager,实现类似轮播图的效果,相对于Android的Viewpager,swiper实现起来更加方便,快捷. 效果图: 首先看下swiper支持的属 ...
- java方法中把对象置null,到底能不能加速垃圾回收
今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的. 测试的过程中,费劲的是要指定一个合理的测试堆大小 ...