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

来源:互联网 发布:颀乎其 编辑:程序博客网 时间:2024/05/21 17:03

我们通过调用系统的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;             }  
原创粉丝点击