android intent打开各种格式文档方法
来源:互联网 发布:转盘抽奖软件下载 编辑:程序博客网 时间:2024/06/08 05:06
我们开发的时候经常碰到打开各种文档,目前的应用处理方式 基本都是依赖于三方软件打开 ,而不是在应用内打开,因为文件格式有很多,倘若都在应用内打开的话,肯定要增加很大的开发时间和开发成本,而且实现效果没有一些三方的app实现的效果好。
话不多说,贴上代码
工具类
import java.io.File;import android.content.Intent;import android.net.Uri;/** * android Intent打开各种类型文件((PDF、word、excel、ppt、chm) */public class IntentDocumentView {// android获取一个用于打开PPT文件的intentpublic static Intent getPptFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/vnd.ms-powerpoint");return intent;}// android获取一个用于打开Excel文件的intentpublic static Intent getExcelFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/vnd.ms-excel");return intent;}// android获取一个用于打开Word文件的intentpublic static Intent getWordFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/msword");return intent;}// android获取一个用于打开CHM文件的intentpublic static Intent getChmFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/x-chm");return intent;}// android获取一个用于打开文本文件的intentpublic static Intent getTextFileIntent(String param, boolean paramBoolean) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (paramBoolean) {Uri uri1 = Uri.parse(param);intent.setDataAndType(uri1, "text/plain");} else {Uri uri2 = Uri.fromFile(new File(param));intent.setDataAndType(uri2, "text/plain");}return intent;}// android获取一个用于打开PDF文件的intentpublic static Intent getPdfFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/pdf");return intent;}// android获取一个用于打开图片文件的intentpublic static Intent getPicturefFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "image/*");return intent;}// android获取一个用于打开压缩包的intent (手机需安装能打开压缩文件的相关软件)public static Intent getZipRarFileIntent(String param) {Intent intent = new Intent("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(new File(param));intent.setDataAndType(uri, "application/x-gzip");return intent;}}
上面这个是核心的工具类,就是打开各种文档的跳转写法,然后在对应的点击事件调用 就可以,举列
protected void openFile(String path) {String format = path.substring(path.lastIndexOf(".") + 1);File file = new File(path);try {if (file.exists() || FileUtil.fileAvailable(file)) {if (TextUtils.equals("doc", format) || TextUtils.equals("docx", format)) {mContext.startActivity(IntentDocumentView.getWordFileIntent(path));} else if (TextUtils.equals("xls", format) || TextUtils.equals("xlsx", format)) {mContext.startActivity(IntentDocumentView.getExcelFileIntent(path));} else if (TextUtils.equals("zip", format) || TextUtils.equals("rar", format)) {mContext.startActivity(IntentDocumentView.getZipRarFileIntent(path));}else if (TextUtils.equals("pdf", format) || TextUtils.equals("PDF", format)) {mContext.startActivity(IntentDocumentView.getPdfFileIntent(path));}else {ToastUtil.showToast(mContext, "新增文件类型,请联系软件开发商");}} else {ToastUtil.showToast(mContext, "请先下载文件");}} catch (Exception e) {e.printStackTrace();ToastUtil.showToast(mContext, "请先安装可以查看" + format + "格式的软件");}}
如果大家还有其他问题,可以加入我的开发群讨论交流:
开发一群:454430053开发二群:537532956
阅读全文
1 0
- android intent打开各种格式文档方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- Android----Intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- director打开各种格式文档
- Android实现打开各种文件的intent方法小结
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- android用于打开各种文件的intent
- Android用于打开各种文件的intent
- android Intent打开各种类型文件
- 【Android】用于打开各种文件的intent
- android用于打开各种文件的intent
- webservice的理解
- HTML select 控件选中后文字变成红色
- Redis 讲解系列之 与Spring集成(一)
- 关于Linux的NAT模式和桥接模式相互ping注意的事
- 同义词/分区/视图
- android intent打开各种格式文档方法
- 阿里Java规约插件
- python基础之逻辑操作符
- 倒计时效果
- 【JAVA】Java桌面程序绘制进度条
- 高德定位地图的集成
- 戎马一生的梅逊公式告诉你:如何携手闭环特征方程并肩作战经典自控各章典型问题?
- android 为控件增加选中状态
- SpringBoot——configuration