美文网首页
Android中打开各种各样的文件

Android中打开各种各样的文件

作者: 破荒之恋 | 来源:发表于2016-12-24 11:04 被阅读89次

    /** * 根据文件位置名称打开文件

    • @param file
      */
    private void openFile(File file){   Intent intent = new Intent(); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
     //设置intent的Action属性   
    intent.setAction(Intent.ACTION_VIEW);  
     //获取文件file的MIME类型   
    String type = getMIMEType(file);  
     //设置intent的data和Type属性。  
     intent.setDataAndType(/*uri*/Uri.fromFile(file), type);   
    //跳转   
    startActivity(intent);}
    

    /** * 根据文件后缀名获得对应的MIME类型。
    *@param file
    */

    private String getMIMEType(File file) {   
    String type="*/*";   
    String fName = file.getName();   
    //获取后缀名前的分隔符"."在fName中的位置。   
    int dotIndex = fName.lastIndexOf(".");   
    if(dotIndex < 0){     
     return type;   }   
    /* 获取文件的后缀名*/   
    String end=fName.substring(dotIndex,fName.length()).toLowerCase();   
    if(end=="")return type;   
    //在MIME和文件类型的匹配表中找到对应的MIME类型。   
    for(int i=0;i<MIME_MapTable.length;i++){
     //MIME_MapTable??在这里你一定有疑问,这个MIME_MapTable是什么?      
    if(end.equals(MIME_MapTable[i][0]))        
     type = MIME_MapTable[i][1];   }   
    return type;}
    

    这里面包含了各种各样的格式文件,不够还可以再补充。。。

    private final String[][] MIME_MapTable={      //{后缀名,MIME类型}      {".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"},      {".docx",   "application/vnd.openxmlformats-officedocument.wordprocessingml.document"},      {".xls",    "application/vnd.ms-excel"},      {".xlsx",   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},      {".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"},      {".pptx",   "application/vnd.openxmlformats-officedocument.presentationml.presentation"},      {".prop",   "text/plain"},      {".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/x-zip-compressed"},      {"",        "*/*"}};
    

    相关文章

      网友评论

          本文标题:Android中打开各种各样的文件

          本文链接:https://www.haomeiwen.com/subject/tbplvttx.html