Android 中的MimeType与MimeTypeMap(一)

2014-11-24 09:22:28 · 作者: · 浏览: 7

类说明以及方法如下:
Class Overview
Two-way map that maps MIME-types to file extensions and vice versa.
Summary
Public Methods
String
getExtensionFromMimeType(String mimeType)
Return the registered extension for the given MIME type.
static String
getFileExtensionFromUrl(String url)
Returns the file extension or an empty string iff there is no extension.
String
getMimeTypeFromExtension(String extension)
Return the MIME type for the given extension.
static MimeTypeMap
getSingleton()
Get the singleton instance of MimeTypeMap.
boolean hasExtension(String extension)
Return true if the given extension has a registered MIME type.
boolean hasMimeType(String mimeType)
Return true if the given MIME type has an entry in the map.


MimeTypeMap类是单例模式的,既没有公有的构造方法。使用getSinglton()方法获得MimeTypeMap对象:
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();



示例:


public class MainActivity extends Activity {
private String tag = "MainActivity";


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println(111);
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();

//MimeTypeMap中是否有txt的MimeType
System.out.println(mimeTypeMap.hasExtension("txt"));

System.out.println(mimeTypeMap.hasMimeType("text/html"));
//获得txt文件类型的MimeType
String extension = mimeTypeMap.getMimeTypeFromExtension("txt");
System.out.println(extension);
}
}


从MimeTypeMap源码中可以看到Android2.2支持的文件类型:
sMimeTypeMap.loadEntry("application/andrew-inset", "ez");
sMimeTypeMap.loadEntry("application/dsptype", "tsp");
sMimeTypeMap.loadEntry("application/futuresplash", "spl");
sMimeTypeMap.loadEntry("application/hta", "hta");
sMimeTypeMap.loadEntry("application/mac-binhex40", "hqx");
sMimeTypeMap.loadEntry("application/mac-compactpro", "cpt");
sMimeTypeMap.loadEntry("application/mathematica", "nb");
sMimeTypeMap.loadEntry("application/msaccess", "mdb");
sMimeTypeMap.loadEntry("application/oda", "oda");
sMimeTypeMap.loadEntry("application/ogg", "ogg");
sMimeTypeMap.loadEntry("application/pdf", "pdf");
sMimeTypeMap.loadEntry("application/pgp-keys", "key");
sMimeTypeMap.loadEntry("application/pgp-signature", "pgp");
sMimeTypeMap.loadEntry("application/pics-rules", "prf");
sMimeTypeMap.loadEntry("application/rar", "rar");
sMimeTypeMap.loadEntry("application/rdf+xml", "rdf");
sMimeTypeMap.loadEntry("application/rss+xml", "rss");
sMimeTypeMap.loadEntry("application/zip", "zip");
sMimeTypeMap.loadEntry("application/vnd.android.package-archive",
"apk");
sMimeTypeMap.loadEntry("application/vnd.cinderella", "cdy");
sMimeTypeMap.loadEntry("application/vnd.ms-pki.stl", "stl");
sMimeTypeMap.loadEntry(
"application/vnd.oasis.opendocument.database", "odb");
sMimeTypeMap.loadEntry(
"application/vnd.oasis.opendocument.formula", "odf");
sMimeTypeMap.l