您的位置:首页 > 移动开发 > Android开发

android intent MIME type

2016-04-01 20:15 531 查看
MIME:全称MultipurposeInternetMailExtensions,多功能Internet邮件扩充服务。它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

在Android中通过文件的MIME类型来判断有哪些应用程序可以处理这些文件,并使用其中的某一个应用程序(如果有多个可选的应用程序,则用户必须指定一个)处理之。

我在写android资源管理器(文件浏览器)的时候,希望能在资源管理器的中实现打开文件的操作,此时就需要用到文件的MIME类型。

实现方法:


privateStringgetMIMEType(Filefile)

{

Stringtype="*

Stringend=fName.substring(dotIndex,fName.length()).toLowerCase();

if(end=="")returntype;

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

for(inti=0;i<MIME_MapTable.length;i++){

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

type=MIME_MapTable[i][1];

}

returntype;

}


privatevoidopenFile(Filefile){

//Uriuri=Uri.parse("file://"+file.getAbsolutePath());

Intentintent=newIntent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//设置intent的Action属性

intent.setAction(Intent.ACTION_VIEW);

//获取文件file的MIME类型

Stringtype=getMIMEType(file);

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

intent.setDataAndType(Uri.fromFile(file),type);

//跳转

startActivity(intent);

}


现在就差一个MIME类型和文件类型的匹配表了。


-------------------------------我是背景分割线------------------------------------------


"文件类型——MIME类型"的匹配表:

//建立一个MIME类型与文件后缀名的匹配表

privatefinalString[][]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"},

{".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/xml"},

{".xml","text/plain"},

{".z","application/x-compress"},

{".zip","application/zip"},

{"","*/*"}

};

这个表目前还不全,上面的只是一些常用的文件类型,对于其他的文件类型和MIME的匹配值我会在以后更新。

注:该文章转载自:http://blog.csdn.net/gf771115/article/details/7827604
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息