Android打开各种类型的文件方法总结

               

很简单,通过调用系统的intent,我们可以打开各种文件,不熟悉的朋友可以了解下action、datatype、uri的相关知识。

通用方法如下:

public static Intent openFile(String filePath){  File file = new File(filePath);  if(!file.exists()) return null;  /* 取得扩展名 */  String end=file.getName().substring(file.getName().lastIndexOf(".") + 1,file.getName().length()).toLowerCase();   /* 依扩展名的类型决定MimeType */  if(end.equals("m4a")||end.equals("mp3")||end.equals("mid")||    end.equals("xmf")||end.equals("ogg")||end.equals("wav")){   return getAudioFileIntent(filePath);  }else if(end.equals("3gp")||end.equals("mp4")){   return getAudioFileIntent(filePath);  }else if(end.equals("jpg")||end.equals("gif")||end.equals("png")||    end.equals("jpeg")||end.equals("bmp")){   return getImageFileIntent(filePath);  }else if(end.equals("apk")){   return getApkFileIntent(filePath);  }else if(end.equals("ppt")){   return getPptFileIntent(filePath);  }else if(end.equals("xls")){   return getExcelFileIntent(filePath);  }else if(end.equals("doc")){   return getWordFileIntent(filePath);  }else if(end.equals("pdf")){   return getPdfFileIntent(filePath);  }else if(end.equals("chm")){   return getChmFileIntent(filePath);  }else if(end.equals("txt")){   return getTextFileIntent(filePath,false);  }else{   return getAllIntent(filePath);  } }  //Android获取一个用于打开APK文件的intent public static Intent getAllIntent( String param ) {  Intent intent = new Intent();    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setAction(android.content.Intent.ACTION_VIEW);    Uri uri = Uri.fromFile(new File(param ));  intent.setDataAndType(uri,"*/*");   return intent; } //Android获取一个用于打开APK文件的intent public static Intent getApkFileIntent( String param ) {  Intent intent = new Intent();    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    intent.setAction(android.content.Intent.ACTION_VIEW);    Uri uri = Uri.fromFile(new File(param ));  intent.setDataAndType(uri,"application/vnd.android.package-archive");   return intent; } //Android获取一个用于打开VIDEO文件的intent public static Intent getVideoFileIntent( String param ) {  Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  intent.putExtra("oneshot", 0);  intent.putExtra("configchange", 0);  Uri uri = Uri.fromFile(new File(param ));  intent.setDataAndType(uri, "video/*");  return intent; } //Android获取一个用于打开AUDIO文件的intent public static Intent getAudioFileIntent( String param ){  Intent intent = new Intent("android.intent.action.VIEW");  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  intent.putExtra("oneshot", 0);  intent.putExtra("configchange", 0);  Uri uri = Uri.fromFile(new File(param ));  intent.setDataAndType(uri, "audio/*");  return intent; } //Android获取一个用于打开Html文件的intent    public static Intent getHtmlFileIntent( String param ){  Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build();  Intent intent = new Intent("android.intent.action.VIEW");  intent.setDataAndType(uri, "text/html");  return intent; } //Android获取一个用于打开图片文件的intent public static Intent getImageFileIntent( 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获取一个用于打开PPT文件的intent    public 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文件的intent    public 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文件的intent    public 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文件的intent    public 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获取一个用于打开文本文件的intent    public 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文件的intent    public 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;    }

以上。

           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值