admin 管理员组

文章数量: 887143

  1. Intent intent = new Intent();

  2. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

  3. //设置intent的Action属性

  4. intent.setAction(Intent.ACTION_VIEW);

  5. //获取文件file的MIME类型

  6. String type = getMIMEType(file);

  7. //设置intent的data和Type属性。

  8. intent.setDataAndType(/*uri*/Uri.fromFile(file), type);

  9. //跳转

  10. startActivity(intent);

  11. }

  12. /**

  13. * 根据文件后缀名获得对应的MIME类型。

  14. * @param file

  15. */

  16. private String getMIMEType(File file) {

  17. String type=“*/*”;

  18. String fName = file.getName();

  19. //获取后缀名前的分隔符"."在fName中的位置。

  20. int dotIndex = fName.lastIndexOf(“.”);

  21. if(dotIndex < 0){

  22. return type;

  23. }

  24. /* 获取文件的后缀名 */

  25. String end=fName.substring(dotIndex,fName.length()).toLowerCase();

  26. if(end==“”)return type;

  27. //在MIME和文件类型的匹配表中找到对应的MIME类型。

  28. for(int i=0;i<MIME_MapTable.length;i++){ //MIME_MapTable??在这里你一定有疑问,这个MIME_MapTable是什么?

  29. if(end.equals(MIME_MapTable[i][0]))

  30. type = MIME_MapTable[i][1];

  31. }

  32. return type;

  33. }

MIME_MapTable是所有文件的后缀名所对应的MIME类型的一个String数组:

Java代码  

  1. private final String[][] MIME_MapTable={

  2. //{后缀名, MIME类型}

  3. {“.3gp”,    “video/3gpp”},

  4. {“.apk”,    “application/vnd.android.package-archive”},

  5. {“.asf”,    “video/x-ms-asf”},

  6. {“.avi”,    “video/x-msvideo”},

  7. {“.bin”,    “application/octet-stream”},

  8. {“.bmp”,    “image/bmp”},

  9. {“.c”,  “text/plain”},

  10. {“.class”,  “application/octet-stream”},

  11. {“.conf”,   “text/plain”},

  12. {“.cpp”,    “text/plain”},

  13. {“.doc”,    “application/msword”},

  14. {“.docx”,   “application/vnd.openxmlformats-officedocument.wordprocessingml.document”},

  15. {“.xls”,    “application/vnd.ms-excel”},

  16. {“.xlsx”,   “application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”},

  17. {“.exe”,    “application/octet-stream”},

  18. {“.gif”,    “image/gif”},

  19. {“.gtar”,   “application/x-gtar”},

  20. {“.gz”, “application/x-gzip”},

  21. {“.h”,  “text/plain”},

  22. {“.htm”,    “text/html”},

  23. {“.html”,   “text/html”},

  24. {“.jar”,    “application/java-archive”},

  25. {“.java”,   “text/plain”},

  26. {“.jpeg”,   “image/jpeg”},

  27. {“.jpg”,    “image/jpeg”},

  28. {“.js”, “application/x-javascript”},

  29. {“.log”,    “text/plain”},

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

的朋友,可以戳这里获取](https://bbs.csdn/topics/618156601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

本文标签: 文件 系统 软件 Android