Как определить типы файлов в Android

Каков наилучший способ определения типа файла в Android?

Я хочу проверить, является ли данный файл изображением, музыкальным файлом и т. Д.

  1. mime.types файлы mime.types в свою папку с ресурсами (например, из /etc/mime.types).
  2. Включите activation.jar (из JAF) в свой путь сборки.
  3. Используйте что-то вроде этого:

     try { MimetypesFileTypeMap mftm = new MimetypesFileTypeMap(getAssets().open("mime.types")); FileTypeMap.setDefaultFileTypeMap(mftm); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 
  4. Затем используйте FileDataSource.getContentType() для получения типов файлов.

 public static String getMimeType(String fileUrl) { String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl); final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); return (mimeType != null) ? mimeType : "unknown"; } 

Обычным способом является только расширение, или вы можете анализировать заголовок, но он должен быть слишком медленным и сложным для ваших приложений.