Androidデバイス(実際にはエミュレータで使用している仮想デバイス)に保存されているファイルのMime/Media Typeを特定しようとしています。 JPG、TXT、DOC、xslx:Java MimetypesFileTypeMapは常にAndroidエミュレータでアプリケーション/オクテットストリームを返します
MimetypesFileTypeMap map = new MimetypesFileTypeMap();
File dir = Environment.getExternalStorageDirectory();
File[] files = dir.listFiles();
String mimeType;
for(int i = 0; i < files.length; ++i) {
if(files[i].isDirectory() == false) {
mimeType = map.getContentType(files[i]);
if(mimeType.toLowerCase().equals("application/octet-stream")) {
Log.d("mytag",
String.format("Unable to determine the mime type of file %s.",
files[i].getName()));
}
}
}
私は次の拡張子を持つファイルでこれをテストしている:私はすべてのファイルタイプのためapplication/octet-stream
を取得するには、次のコードを実行したときしかし、javax.activation.MimetypesFileTypeMap
を推奨しています。このリソースGet the MIME Type from a Fileを見つけましたpdfとそれらはすべて同じことを返します。地図を初期化するために何かしなければならないことはありますか?このライブラリはAndroidでサポートされているMIMEタイプのリストを見つけることができませんか? AndroidでファイルのMIMEタイプを取得するより良い方法はありますか?
を解決するために
私はこのリンクhttp://stackoverflow.com/questions/を参照してください(アンドロイドが関与していない)同じ問題を抱えています6308142/additional-mimetypes-to-mimetypesfiletypemap。私は私たちがまだ試していない、MIMEタイプの完全なリストを含む再発声ファイルを追加する必要があると思う。 –