Come determinare i tipi di file in Android
Domanda
Qual è il modo migliore per determinare un tipo di file in Android?
voglio verificare se il file specificato è un'immagine, un file musicale, ecc.
Soluzione
- includere alcuni file nella cartella
mime.types
attivi (per esempio da /etc/mime.types). - Includi
activation.jar
(da JAF) nel vostro percorso di generazione. -
Usa qualcosa come questo:
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(); }
-
Quindi utilizzare
FileDataSource.getContentType()
per ottenere i tipi di file.
Altri suggerimenti
public static String getMimeType(String fileUrl) {
String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl);
final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
return (mimeType != null) ? mimeType : "unknown";
}
Un modo comune è dalla loro estensione solo, oppure è possibile analizzare l'intestazione, ma dovrebbe essere troppo lento e più complessa per le tue applicazioni.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow