android打开各种文件代码,根据文件名自动选择打开程序 您所在的位置:网站首页 安卓打开md文件 android打开各种文件代码,根据文件名自动选择打开程序

android打开各种文件代码,根据文件名自动选择打开程序

2023-03-14 12:50| 来源: 网络整理| 查看: 265

android项目中,可能需要打开各种文件,每一个都写一个Intent 并且并且根据不同的类型设置setDataAndType  当有大量文件类型时,打开文件变得很麻烦

下面是写的一个打开文件工具类,可以根据不同的文件类型打开不同应用程序

代码地址如下http://download.csdn.net/detail/zaiyong/7712737

当可以识别文件类型时,根据文件类型打开文件

当识别不了文件类型时如图

下面是MimeUtils 根据MIME类型选择对应的action

public final class MimeUtils {     private static final Map mimeTypeToExtensionMap = new HashMap();     private static final Map extensionToMimeTypeMap = new HashMap();     static {         // The following table is based on /etc/mime.types data minus         // chemical/* MIME types and MIME types that don't map to any         // file extensions. We also exclude top-level domain names to         // deal with cases like:         //         // mail.google.com/a/google.com         //         // and "active" MIME types (due to potential security issues).         add("application/andrew-inset", "ez");         add("application/dsptype", "tsp");         add("application/futuresplash", "spl");         add("application/hta", "hta");         add("application/mac-binhex40", "hqx");         add("application/mac-compactpro", "cpt");         add("application/mathematica", "nb");         add("application/msaccess", "mdb");         add("application/oda", "oda");         add("application/ogg", "ogg");         add("application/pdf", "pdf");         add("application/pgp-keys", "key");         add("application/pgp-signature", "pgp");         add("application/pics-rules", "prf");         add("application/rar", "rar");         add("application/rdf+xml", "rdf");         add("application/rss+xml", "rss");         add("application/zip", "zip");         add("application/vnd.android.package-archive", "apk");         add("application/vnd.cinderella", "cdy");         add("application/vnd.ms-pki.stl", "stl");         add("application/vnd.oasis.opendocument.database", "odb");         add("application/vnd.oasis.opendocument.formula", "odf");         add("application/vnd.oasis.opendocument.graphics", "odg");         add("application/vnd.oasis.opendocument.graphics-template", "otg");         add("application/vnd.oasis.opendocument.image", "odi");         add("application/vnd.oasis.opendocument.spreadsheet", "ods");         add("application/vnd.oasis.opendocument.spreadsheet-template", "ots");         add("application/vnd.oasis.opendocument.text", "odt");         add("application/vnd.oasis.opendocument.text-master", "odm");         add("application/vnd.oasis.opendocument.text-template", "ott");         add("application/vnd.oasis.opendocument.text-web", "oth");         add("application/vnd.google-earth.kml+xml", "kml");         add("application/vnd.google-earth.kmz", "kmz");         add("application/msword", "doc");         add("application/msword", "dot");         add("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx");         add("application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx");         add("application/vnd.ms-excel", "xls");         add("application/vnd.ms-excel", "xlt");         add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx");         add("application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx");         add("application/vnd.ms-powerpoint", "ppt");         add("application/vnd.ms-powerpoint", "pot");         add("application/vnd.ms-powerpoint", "pps");         add("application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx");         add("application/vnd.openxmlformats-officedocument.presentationml.template", "potx");         add("application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx");         add("application/vnd.rim.cod", "cod");         add("application/vnd.smaf", "mmf");         add("application/vnd.stardivision.calc", "sdc");         add("application/vnd.stardivision.draw", "sda");         add("application/vnd.stardivision.impress", "sdd");         add("application/vnd.stardivision.impress", "sdp");         add("application/vnd.stardivision.math", "smf");         add("application/vnd.stardivision.writer", "sdw");         add("application/vnd.stardivision.writer", "vor");         add("application/vnd.stardivision.writer-global", "sgl");         add("application/vnd.sun.xml.calc", "sxc");         add("application/vnd.sun.xml.calc.template", "stc");         add("application/vnd.sun.xml.draw", "sxd");         add("application/vnd.sun.xml.draw.template", "std");         add("application/vnd.sun.xml.impress", "sxi");         add("application/vnd.sun.xml.impress.template", "sti");         add("application/vnd.sun.xml.math", "sxm");         add("application/vnd.sun.xml.writer", "sxw");         add("application/vnd.sun.xml.writer.global", "sxg");         add("application/vnd.sun.xml.writer.template", "stw");         add("application/vnd.visio", "vsd");         add("application/x-abiword", "abw");         add("application/x-apple-diskimage", "dmg");         add("application/x-bcpio", "bcpio");         add("application/x-bittorrent", "torrent");         add("application/x-cdf", "cdf");         add("application/x-cdlink", "vcd");         add("application/x-chess-pgn", "pgn");         add("application/x-cpio", "cpio");         add("application/x-debian-package", "deb");         add("application/x-debian-package", "udeb");         add("application/x-director", "dcr");         add("application/x-director", "dir");         add("application/x-director", "dxr");         add("application/x-dms", "dms");         add("application/x-doom", "wad");         add("application/x-dvi", "dvi");         add("application/x-flac", "flac");         add("application/x-font", "pfa");         add("application/x-font", "pfb");         add("application/x-font", "gsf");         add("application/x-font", "pcf");         add("application/x-font", "pcf.Z");         add("application/x-freemind", "mm");         add("application/x-futuresplash", "spl");         add("application/x-gnumeric", "gnumeric");         add("application/x-go-sgf", "sgf");         add("application/x-graphing-calculator", "gcf");         add("application/x-gtar", "gtar");         add("application/x-gtar", "tgz");         add("application/x-gtar", "taz");         add("application/x-hdf", "hdf");         add("application/x-ica", "ica");         add("application/x-internet-signup", "ins");         add("application/x-internet-signup", "isp");         add("application/x-iphone", "iii");         add("application/x-iso9660-image", "iso");         add("application/x-jmol", "jmz");         add("application/x-kchart", "chrt");         add("application/x-killustrator", "kil");         add("application/x-koan", "skp");         add("application/x-koan", "skd");         add("application/x-koan", "skt");         add("application/x-koan", "skm");         add("application/x-kpresenter", "kpr");         add("application/x-kpresenter", "kpt");         add("application/x-kspread", "ksp");         add("application/x-kword", "kwd");         add("application/x-kword", "kwt");         add("application/x-latex", "latex");         add("application/x-lha", "lha");         add("application/x-lzh", "lzh");         add("application/x-lzx", "lzx");         add("application/x-maker", "frm");         add("application/x-maker", "maker");         add("application/x-maker", "frame");         add("application/x-maker", "fb");         add("application/x-maker", "book");         add("application/x-maker", "fbdoc");         add("application/x-mif", "mif");         add("application/x-ms-wmd", "wmd");         add("application/x-ms-wmz", "wmz");         add("application/x-msi", "msi");         add("application/x-ns-proxy-autoconfig", "pac");         add("application/x-nwc", "nwc");         add("application/x-object", "o");         add("application/x-oz-application", "oza");         add("application/x-pkcs12", "p12");         add("application/x-pkcs7-certreqresp", "p7r");         add("application/x-pkcs7-crl", "crl");         add("application/x-quicktimeplayer", "qtl");         add("application/x-shar", "shar");         add("application/x-shockwave-flash", "swf");         add("application/x-stuffit", "sit");         add("application/x-sv4cpio", "sv4cpio");         add("application/x-sv4crc", "sv4crc");         add("application/x-tar", "tar");         add("application/x-texinfo", "texinfo");         add("application/x-texinfo", "texi");         add("application/x-troff", "t");         add("application/x-troff", "roff");         add("application/x-troff-man", "man");         add("application/x-ustar", "ustar");         add("application/x-wais-source", "src");         add("application/x-wingz", "wz");         add("application/x-webarchive", "webarchive");         add("application/x-webarchive-xml", "webarchivexml");         add("application/x-x509-ca-cert", "crt");         add("application/x-x509-user-cert", "crt");         add("application/x-xcf", "xcf");         add("application/x-xfig", "fig");         add("application/xhtml+xml", "xhtml");         add("audio/3gpp", "3gpp");         add("audio/amr", "amr");         add("audio/basic", "snd");         add("audio/midi", "mid");         add("audio/midi", "midi");         add("audio/midi", "kar");         add("audio/midi", "xmf");         add("audio/mobile-xmf", "mxmf");         add("audio/mpeg", "mpga");         add("audio/mpeg", "mpega");         add("audio/mpeg", "mp2");         add("audio/mpeg", "mp3");         add("audio/mpeg", "m4a");         add("audio/mpegurl", "m3u");         add("audio/prs.sid", "sid");         add("audio/x-aiff", "aif");         add("audio/x-aiff", "aiff");         add("audio/x-aiff", "aifc");         add("audio/x-gsm", "gsm");         add("audio/x-mpegurl", "m3u");         add("audio/x-ms-wma", "wma");         add("audio/x-ms-wax", "wax");         add("audio/x-pn-realaudio", "ra");         add("audio/x-pn-realaudio", "rm");         add("audio/x-pn-realaudio", "ram");         add("audio/x-realaudio", "ra");         add("audio/x-scpls", "pls");         add("audio/x-sd2", "sd2");         add("audio/x-wav", "wav");         add("image/bmp", "bmp");         add("audio/x-qcp", "qcp");         add("image/gif", "gif");         add("image/ico", "cur");         add("image/ico", "ico");         add("image/ief", "ief");         add("image/jpeg", "jpeg");         add("image/jpeg", "jpg");         add("image/jpeg", "jpe");         add("image/pcx", "pcx");         add("image/png", "png");         add("image/svg+xml", "svg");         add("image/svg+xml", "svgz");         add("image/tiff", "tiff");         add("image/tiff", "tif");         add("image/vnd.djvu", "djvu");         add("image/vnd.djvu", "djv");         add("image/vnd.wap.wbmp", "wbmp");         add("image/x-cmu-raster", "ras");         add("image/x-coreldraw", "cdr");         add("image/x-coreldrawpattern", "pat");         add("image/x-coreldrawtemplate", "cdt");         add("image/x-corelphotopaint", "cpt");         add("image/x-icon", "ico");         add("image/x-jg", "art");         add("image/x-jng", "jng");         add("image/x-ms-bmp", "bmp");         add("image/x-photoshop", "psd");         add("image/x-portable-anymap", "pnm");         add("image/x-portable-bitmap", "pbm");         add("image/x-portable-graymap", "pgm");         add("image/x-portable-pixmap", "ppm");         add("image/x-rgb", "rgb");         add("image/x-xbitmap", "xbm");         add("image/x-xpixmap", "xpm");         add("image/x-xwindowdump", "xwd");         add("model/iges", "igs");         add("model/iges", "iges");         add("model/mesh", "msh");         add("model/mesh", "mesh");         add("model/mesh", "silo");         add("text/calendar", "ics");         add("text/calendar", "icz");         add("text/comma-separated-values", "csv");         add("text/css", "css");         add("text/html", "htm");         add("text/html", "html");         add("text/h323", "323");         add("text/iuls", "uls");         add("text/mathml", "mml");         // add ".txt" first so it will be the default for ExtensionFromMimeType         add("text/plain", "txt");         add("text/plain", "asc");         add("text/plain", "text");         add("text/plain", "diff");         add("text/plain", "po");     // reserve "pot" for vnd.ms-powerpoint         add("text/richtext", "rtx");         add("text/rtf", "rtf");         add("text/texmacs", "ts");         add("text/text", "phps");         add("text/tab-separated-values", "tsv");         add("text/xml", "xml");         add("text/x-bibtex", "bib");         add("text/x-boo", "boo");         add("text/x-c++hdr", "h++");         add("text/x-c++hdr", "hpp");         add("text/x-c++hdr", "hxx");         add("text/x-c++hdr", "hh");         add("text/x-c++src", "c++");         add("text/x-c++src", "cpp");         add("text/x-c++src", "cxx");         add("text/x-chdr", "h");         add("text/x-component", "htc");         add("text/x-csh", "csh");         add("text/x-csrc", "c");         add("text/x-dsrc", "d");         add("text/x-haskell", "hs");         add("text/x-java", "java");         add("text/x-literate-haskell", "lhs");         add("text/x-moc", "moc");         add("text/x-pascal", "p");         add("text/x-pascal", "pas");         add("text/x-pcs-gcd", "gcd");         add("text/x-setext", "etx");         add("text/x-tcl", "tcl");         add("text/x-tex", "tex");         add("text/x-tex", "ltx");         add("text/x-tex", "sty");         add("text/x-tex", "cls");         add("text/x-vcalendar", "vcs");         add("text/x-vcard", "vcf");         add("video/3gpp", "3gpp");         add("video/3gpp", "3gp");         add("video/3gpp", "3g2");         add("video/dl", "dl");         add("video/dv", "dif");         add("video/dv", "dv");         add("video/fli", "fli");         add("video/m4v", "m4v");         add("video/mpeg", "mpeg");         add("video/mpeg", "mpg");         add("video/mpeg", "mpe");         add("video/mp4", "mp4");         add("video/mpeg", "VOB");         add("video/quicktime", "qt");         add("video/quicktime", "mov");         add("video/vnd.mpegurl", "mxu");         add("video/webm", "webm");         add("video/x-la-asf", "lsf");         add("video/x-la-asf", "lsx");         add("video/x-mng", "mng");         add("video/x-ms-asf", "asf");         add("video/x-ms-asf", "asx");         add("video/x-ms-wm", "wm");         add("video/x-ms-wmv", "wmv");         add("video/x-ms-wmx", "wmx");         add("video/x-ms-wvx", "wvx");         add("video/x-msvideo", "avi");         add("video/x-sgi-movie", "movie");         add("x-conference/x-cooltalk", "ice");         add("x-epoc/x-sisx-app", "sisx");         applyOverrides();     }     private static void add(String mimeType, String extension) {         //         // if we have an existing x --> y mapping, we do not want to         // override it with another mapping x --> ?         // this is mostly because of the way the mime-type map below         // is constructed (if a mime type maps to several extensions         // the first extension is considered the most popular and is         // added first; we do not want to overwrite it later).         //         if (!mimeTypeToExtensionMap.containsKey(mimeType)) {             mimeTypeToExtensionMap.put(mimeType, extension);         }         extensionToMimeTypeMap.put(extension, mimeType);     }     private static InputStream getContentTypesPropertiesStream() {         // User override?         String userTable = System.getProperty("content.types.user.table");         if (userTable != null) {             File f = new File(userTable);             if (f.exists()) {                 try {                     return new FileInputStream(f);                 } catch (IOException ignored) {                 }             }         }         // Standard location?         File f = new File(System.getProperty("java.home"), "lib" + File.separator + "content-types.properties");         if (f.exists()) {             try {                 return new FileInputStream(f);             } catch (IOException ignored) {             }         }         return null;     }   }

IntentBuilder是打开文件代码

public class IntentBuilder {     public static void viewFile(final Context context, final String filePath) {         String type = getMimeType(filePath);         if (!TextUtils.isEmpty(type) && !TextUtils.equals(type, "*/*")) {             /* 设置intent的file与MimeType */             Intent intent = new Intent();             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);             intent.setAction(android.content.Intent.ACTION_VIEW);             intent.setDataAndType(Uri.fromFile(new File(filePath)), type);             context.startActivity(intent);         } else {             // unknown MimeType             Log.i("lei", "le");             AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);             dialogBuilder.setTitle(R.string.dialog_select_type);              CharSequence[] menuItemArray = new CharSequence[] {              context.getString(R.string.dialog_type_text),              context.getString(R.string.dialog_type_audio),              context.getString(R.string.dialog_type_video),              context.getString(R.string.dialog_type_image) };                               //CharSequence[] menuItemArray = new CharSequence[] {"文本", "音频", "视频", "图像"};             dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() {                 @Override                 public void onClick(DialogInterface dialog, int which) {                     String selectType = "*/*";                     switch (which) {                         case 0:                             selectType = "text/plain";                             break;                         case 1:                             selectType = "audio/*";                             break;                         case 2:                             selectType = "video/*";                             break;                         case 3:                             selectType = "image/*";                             break;                     }                     Intent intent = new Intent();                     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                     intent.setAction(android.content.Intent.ACTION_VIEW);                     intent.setDataAndType(Uri.fromFile(new File(filePath)), selectType);                     context.startActivity(intent);                 }             });             dialogBuilder.show();         }     }     private static String getMimeType(String filePath) {         int dotPosition = filePath.lastIndexOf('.');         if (dotPosition == -1)             return "*/*";         String ext = filePath.substring(dotPosition + 1, filePath.length()).toLowerCase();         String mimeType = MimeUtils.guessMimeTypeFromExtension(ext);         if (ext.equals("mtz")) {             mimeType = "application/miui-mtz";         }         return mimeType != null ? mimeType : "*/*";     } }

调用直接用 IntentBuilder.viewFile(this, "文件地址");

代码地址如下http://download.csdn.net/detail/zaiyong/7712737



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有