-
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();
-
//获取后缀名前
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
的分隔符"."在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;
-
}
MIME_MapTable是所有文件的后缀名所对应的MIME类型的一个String数组:
-
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”},
{".mpc", “application/vnd.mpohun.certificate”},
-
{".mpe", “video/mpeg”},
-
{".mpeg", “video/mpeg”},