Android调用系统应用打开各种类型文件
1.建立匹配表
//建立一个文件类型与文件后缀名的匹配表private static final String[][] MATCH_ARRAY={//{后缀名, 文件类型}{".3gp", "video/3gpp"},{".apk", "application/vnd.android.package-archive"},{".asf", "video/x-ms-asf"},{".avi", "video/x-msvideo"},{".bin", "application/octet-stream"},{".bmp", "image/bmp"},{".c", "text/plain"},{".class", "application/octet-stream"},{".conf", "text/plain"},{".cpp", "text/plain"},{".doc", "application/msword"},{".exe", "application/octet-stream"},{".gif", "image/gif"},{".gtar", "application/x-gtar"},{".gz", "application/x-gzip"},{".h", "text/plain"},{".htm", "text/html"},{".html", "text/html"},{".jar", "application/java-archive"},{".java", "text/plain"},{".jpeg", "image/jpeg"},{".jpg", "image/jpeg"},{".js", "application/x-javascript"},{".log", "text/plain"},{".m3u", "audio/x-mpegurl"},{".m4a", "audio/mp4a-latm"},{".m4b", "audio/mp4a-latm"},{".m4p", "audio/mp4a-latm"},{".m4u", "video/vnd.mpegurl"},{".m4v", "video/x-m4v"},{".mov", "video/quicktime"},{".mp2", "audio/x-mpeg"},{".mp3", "audio/x-mpeg"},{".mp4", "video/mp4"},{".mpc", "application/vnd.mpohun.certificate"},{".mpe", "video/mpeg"},{".mpeg", "video/mpeg"},{".mpg", "video/mpeg"},{".mpg4", "video/mp4"},{".mpga", "audio/mpeg"},{".msg", "application/vnd.ms-outlook"},{".ogg", "audio/ogg"},{".pdf", "application/pdf"},{".png", "image/png"},{".pps", "application/vnd.ms-powerpoint"},{".ppt", "application/vnd.ms-powerpoint"},{".prop", "text/plain"},{".rar", "application/x-rar-compressed"},{".rc", "text/plain"},{".rmvb", "audio/x-pn-realaudio"},{".rtf", "application/rtf"},{".sh", "text/plain"},{".tar", "application/x-tar"},{".tgz", "application/x-compressed"},{".txt", "text/plain"},{".wav", "audio/x-wav"},{".wma", "audio/x-ms-wma"},{".wmv", "audio/x-ms-wmv"},{".wps", "application/vnd.ms-works"},{".xml", "text/plain"},{".z", "application/x-compress"},{".zip", "application/zip"},{"", "*/*"}};
2.根据路径打开文件
/*** 根据路径打开文件* @param context 上下文* @param path 文件路径*/public static void openFileByPath(Context context,String path) {if(context==null||path==null)return;Intent intent = new Intent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//设置intent的Action属性intent.setAction(Intent.ACTION_VIEW);//文件的类型String type = "";for(int i =0;i<MATCH_ARRAY.length;i++){//判断文件的格式if(path.toString().contains(MATCH_ARRAY[i][0].toString())){type = MATCH_ARRAY[i][1];break;}}try {//设置intent的data和Type属性intent.setDataAndType(Uri.fromFile(new File(path)), type);//跳转context.startActivity(intent);} catch (Exception e) { //当系统没有携带文件打开软件,提示ShowToastUtil.showToast(context,"无法打开该格式文件!");e.printStackTrace();}}
3.结果
①当系统打不开该格式文件
②当系统应用可以打开文件
Android调用系统应用打开各种类型文件相关推荐
- android调用系统相册打开图片不显示,【报Bug】打开相册,不显示图片,选中图片后,app会崩溃...
产品分类: uniapp/App PC开发环境操作系统: Mac PC开发环境操作系统版本号: 10 HBuilderX类型: 正式 HBuilderX版本号: 2.8.8 手机系统: Android ...
- 使用致远OA系统,打开Excel类型文件,提示office编辑程序未安装
今早上使用公司OA系统时,怎么都不能打开Excel类型的文章,word类型的则可以正常打开,如下图: 经检查发现是才安装的福昕PDF搞的鬼,具体原因未知,将其卸载后就能正常使用.
- Android 调用系统API打开闪光灯
我们用的android手机现在基本上都支持闪光灯了,实现一个闪光灯的功能不是很难,就是其中会碰到一些奇葩的问题.我就碰到了一些问题,因为国产ROM的一些??,导致我们的闪光灯总是不能正常的打开.作为一 ...
- android安装自动打开网页,Android调用系统自带浏览器打开网页的实现方法
Android调用系统自带浏览器打开网页的实现方法 在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接.只需要传入一个uri,可以是链接地址. 启动android默认浏览器 在A ...
- Android 调用系统分享图片、视频等文件
目录 序言 打开文件管理器 分享操作 文件Uri转化为String 序言 一般都会集成Umeng的分享,基本的分享都可以满足,但是要想分享文件,比如pdf.doc.ppt等类型时,umeng就不能满足 ...
- Android调用系统的拍照,打开相册功能
Android调用系统的拍照,打开相册功能 1 添加权限: <!-- 往SDCard写入数据权限 --> <uses-permission android:name="an ...
- win10无法打开服务器文件类型,win10系统无法打开此类型的文件(.exe)的解决方法...
很多小伙伴都遇到过win10系统无法打开此类型的文件(.exe)的困惑吧,一些朋友看过网上零散的win10系统无法打开此类型的文件(.exe)的处理方法,并没有完完全全明白win10系统无法打开此类型 ...
- Android 调用系统裁剪,适配11和12及手机
前言:发现Android 调用系统裁剪时,在各Android 版本出现各种问题,踩了一堆坑,做一下总结,免得以后忘记 后面会有完整裁剪代码 1,一加手机报错 intent.putExtra(" ...
- android 调用系统文件管理器
今天,简单讲讲android如何调用系统的文件管理器获取目录下的文件资源. 这几天,还是因为搬家的事,导致自己状态很差.和领导说想要辞职,领导说还是先适应一下在说.所以还是坚持了. 这个其实也很简单, ...
最新文章
- 基于LVS-DR集群的持久链接实验
- Calc3: Multiple Integrals
- JetBrains遭美国调查,称其是被大规模黑客攻击的源头?
- Dijkstra 最短路径算法详解 无向图
- P1314,jzoj3028-聪明的质监员【二分答案,前缀和】
- 【CodeForces - 266C】Below the Diagonal (递归,子问题,贪心模拟)
- 计算机里的东西太多,电脑里的东西太多,怎么样清理一下啊
- 一起学习C语言:初步进入编程世界(一)
- Spring源码分析之ProxyFactoryBean方式实现Aop功能的分析
- IPSEC是如何穿越NAT的
- OpenJudge计算概论-字符串最大跨距
- 1024Studio官网
- 8.4 向量应用(二)——空间直线
- 《C++ Concurrencyin Action》第10章--多线程程序的测试和调试
- High Version Count Issues(SQL高Version Count) (文档 ID 296377.1)
- 动态渲染element组件el-table表头项+自定义el-table列表项
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,是在return前还是后
- 【转】从一个App跳转到另一APP
- vue图片压缩不失真_vue图片压缩(不失真)
- LDO investigation