android 打开文件
16lz
2022-05-31
1.定义文件类型。
public class MIME {public final static String[][] MIME_MapTable = {{".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"}, {".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"}, {".prop", "text/plain"}, {".rar", "application/x-rar-compressed"}, {".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"}, {".xls", "application/vnd.ms-excel"}, {".z", "application/x-compress"}, {".zip", "application/zip"}, {"", "*/*"} };}
2.获取需要打开的文件的类型。
private String getMIMEType(File file) {String type = "*/*";String filename = file.getName();int dotindex = filename.lastIndexOf(".");if (dotindex < 0) {return type;}String end = filename.substring(dotindex, filename.length()).toLowerCase();if (end == "") {return type;}for (int i = 0; i < MIME.MIME_MapTable.length; i++) {if (end.equals(MIME.MIME_MapTable[i][0])) {type = MIME.MIME_MapTable[i][1];}}return type;}
3.打开文件。
File mOpenFile = new File(MainActivity.mPathList.get(mCurOperationFileIndex));Intent intentopen = new Intent();intentopen.setAction(Intent.ACTION_VIEW);// intentopen.addCategory("android.intent.category.DEFAULT");intentopen.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);String type = getMIMEType(mOpenFile);intentopen.setDataAndType(Uri.fromFile(mOpenFile), type);try {startActivity(intentopen);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}
更多相关文章
- 【Android】volley网络框架的文件下载
- Android(安卓)SDK 目录和作用的分析详解
- Unity3D Android播放视频
- Android(安卓)到ARM versatile PB板移植主要步骤
- Android(安卓)sdk 接入时遇到的错误解决方案
- 在Android中把内容写到XML文件中
- gradle android基本配置详解
- android XmlSerializer 组拼xml
- NPM 和webpack 的基础使用