Android打开各种类型的文件方法总结
来源:互联网 发布:人工智能产业高峰论坛 编辑:程序博客网 时间:2024/06/05 20:15
很简单,通过调用系统的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 getVideoFileIntent(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;
- }
以上。
转自:http://blog.csdn.net/eclipsexys/article/details/39552501
0 0
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- Android总结打开各种类型的文件方法
- Android打开各种类型的文件方法总结
- Android打开各种类型的文件方法总结
- (转载一些资料) Android打开各种类型的文件方法总结..........
- Android下打开各种类型文件的方法
- android中打开各种文件的方法
- android 打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- android intent打开各种文件的方法
- Scala 基础总结
- Mac下安装svn并且检出项目
- Github Reset
- Unsolicited response received on idle HTTP channel starting with "[]\n"; err=<nil>
- 位段与联合,枚举类型
- Android打开各种类型的文件方法总结
- NetWork——描述一次完整的网络请求过程
- Js获取图片的真实大小
- Percona监控工具初探
- android 混淆配置 实例实战项目讲解
- libgdx之瓦片地图(TiledMap)
- x86反汇编练习-20161120
- iterm2 lrzsz
- bzoj 1036