ちょっとアプリを作っていてかなり悩んだのでメモとして残しておく
MIME Typeというのは見たことはあるが、きちんと知らないので調べて見ました
MIME 【Multipurpose Internet Mail Extension】
"マイム"と読むらしい
直訳してみれば、"多目的インターネットメール拡張機能"かな?
ネットワーク上で動画、音声、画像などのファイルを扱うための規格
RFC2045~2049で規定されている。
拡張子とファイルのデータを関連付けているものらしい
" タイプ名/サブタイプ名"のように区切られて表現される
例としては、
text/html
text/plain
image/jpg
application/pdf
などなど
さて、例えば、AndroidでSDカードにアクセスし適当なファイルを開いた際
どんなファイルか判別したいとする
この時にMIMEを読み取り画像か音声かテキストか判別し
他のアプリにIntentを投げようと思います
※12/25追記:以下の方法だと動作しない場合があるので更に下に追記しました。
Android Developerの
ここを参考に
//ファイル名からMIMEタイプ取得
public String GetMIMEType(String Path){
//拡張子を取得
String ext=MimeTypeMap.getFileExtensionFromUrl(Path);
//小文字に変換
ext=ext.toLowerCase();
//MIME Typeを返す
return MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
}
引数のパスは"/sdcard/Music/xxx.mp3"のように渡しています。
そこからgetFileExtensionFromUrlメソッドを使って、拡張子(mp3)を取得
それをgetMimeTypeFromExtensionメソッドに入れてMIME Typeを呼び出し元に返す
getFileExtensionFromUrlとgetMimeTypeFromExtensionはエラーだとnullを返すので注意
加えて、他のサイトで見…
コメント
コメントを投稿