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.

È stato utile?

Soluzione

  1. includere alcuni file nella cartella mime.types attivi (per esempio da /etc/mime.types).
  2. Includi activation.jar (da JAF) nel vostro percorso di generazione.
  3. 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();
    }
    
  4. 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
scroll top