2016-09-23 2 views
1

J'essaie d'afficher un format pris en charge par le programme par programme. J'ai trouvé cela sur internet. la question est, comment les afficher? s'il vous plaît aidez-moi, im débutant dans le développement Android.Comment afficher une liste de tous les types MIME pris en charge par un appareil Android donné?

Voici le code pour vérifier le format de fichier de l'appareil.

package com.android.mmscommon; 

import java.util.ArrayList; 

public class ContentType { 

    public static final String MMS_MESSAGE  = "application/vnd.wap.mms-message"; 
    // The phony content type for generic PDUs (e.g. ReadOrig.ind, 
    // Notification.ind, Delivery.ind). 
    public static final String MMS_GENERIC  = "application/vnd.wap.mms-generic"; 
    public static final String MULTIPART_MIXED = "application/vnd.wap.multipart.mixed"; 
    public static final String MULTIPART_RELATED = "application/vnd.wap.multipart.related"; 
    public static final String MULTIPART_ALTERNATIVE = "application/vnd.wap.multipart.alternative"; 
    public static final String TEXT_PLAIN  = "text/plain"; 
    public static final String TEXT_HTML   = "text/html"; 
    public static final String TEXT_VCALENDAR = "text/x-vCalendar"; 
    public static final String TEXT_VCARD  = "text/x-vCard"; 
    public static final String IMAGE_UNSPECIFIED = "image/*"; 
    public static final String IMAGE_JPEG  = "image/jpeg"; 
    public static final String IMAGE_JPG   = "image/jpg"; 
    public static final String IMAGE_GIF   = "image/gif"; 
    public static final String IMAGE_WBMP  = "image/vnd.wap.wbmp"; 
    public static final String IMAGE_PNG   = "image/png"; 
    public static final String AUDIO_UNSPECIFIED = "audio/*"; 
    public static final String AUDIO_AAC   = "audio/aac"; 
    public static final String AUDIO_AMR   = "audio/amr"; 
    public static final String AUDIO_IMELODY  = "audio/imelody"; 
    public static final String AUDIO_MID   = "audio/mid"; 
    public static final String AUDIO_MIDI  = "audio/midi"; 
    public static final String AUDIO_MP3   = "audio/mp3"; 
    public static final String AUDIO_MPEG3  = "audio/mpeg3"; 
    public static final String AUDIO_MPEG  = "audio/mpeg"; 
    public static final String AUDIO_MPG   = "audio/mpg"; 
    public static final String AUDIO_MP4   = "audio/mp4"; 
    public static final String AUDIO_X_MID  = "audio/x-mid"; 
    public static final String AUDIO_X_MIDI  = "audio/x-midi"; 
    public static final String AUDIO_X_MP3  = "audio/x-mp3"; 
    public static final String AUDIO_X_MPEG3  = "audio/x-mpeg3"; 
    public static final String AUDIO_X_MPEG  = "audio/x-mpeg"; 
    public static final String AUDIO_X_MPG  = "audio/x-mpg"; 
    public static final String AUDIO_3GPP  = "audio/3gpp"; 
    public static final String AUDIO_OGG   = "application/ogg"; 
    public static final String VIDEO_UNSPECIFIED = "video/*"; 
    public static final String VIDEO_3GPP  = "video/3gpp"; 
    public static final String VIDEO_3G2   = "video/3gpp2"; 
    public static final String VIDEO_H263  = "video/h263"; 
    public static final String VIDEO_MP4   = "video/mp4"; 
    public static final String APP_SMIL   = "application/smil"; 
    public static final String APP_WAP_XHTML  = "application/vnd.wap.xhtml+xml"; 
    public static final String APP_XHTML   = "application/xhtml+xml"; 
    public static final String APP_DRM_CONTENT = "application/vnd.oma.drm.content"; 
    public static final String APP_DRM_MESSAGE = "application/vnd.oma.drm.message"; 
    private static final ArrayList<String> sSupportedContentTypes = new ArrayList<String>(); 
    private static final ArrayList<String> sSupportedImageTypes = new ArrayList<String>(); 
    private static final ArrayList<String> sSupportedAudioTypes = new ArrayList<String>(); 
    private static final ArrayList<String> sSupportedVideoTypes = new ArrayList<String>(); 
    static { 
     sSupportedContentTypes.add(TEXT_PLAIN); 
     sSupportedContentTypes.add(TEXT_HTML); 
     sSupportedContentTypes.add(TEXT_VCALENDAR); 
     sSupportedContentTypes.add(TEXT_VCARD); 
     sSupportedContentTypes.add(IMAGE_JPEG); 
     sSupportedContentTypes.add(IMAGE_GIF); 
     sSupportedContentTypes.add(IMAGE_WBMP); 
     sSupportedContentTypes.add(IMAGE_PNG); 
     sSupportedContentTypes.add(IMAGE_JPG); 
     //supportedContentTypes.add(IMAGE_SVG); not yet supported. 
     sSupportedContentTypes.add(AUDIO_AAC); 
     sSupportedContentTypes.add(AUDIO_AMR); 
     sSupportedContentTypes.add(AUDIO_IMELODY); 
     sSupportedContentTypes.add(AUDIO_MID); 
     sSupportedContentTypes.add(AUDIO_MIDI); 
     sSupportedContentTypes.add(AUDIO_MP3); 
     sSupportedContentTypes.add(AUDIO_MPEG3); 
     sSupportedContentTypes.add(AUDIO_MPEG); 
     sSupportedContentTypes.add(AUDIO_MPG); 
     sSupportedContentTypes.add(AUDIO_X_MID); 
     sSupportedContentTypes.add(AUDIO_X_MIDI); 
     sSupportedContentTypes.add(AUDIO_X_MP3); 
     sSupportedContentTypes.add(AUDIO_X_MPEG3); 
     sSupportedContentTypes.add(AUDIO_X_MPEG); 
     sSupportedContentTypes.add(AUDIO_X_MPG); 
     sSupportedContentTypes.add(AUDIO_3GPP); 
     sSupportedContentTypes.add(AUDIO_OGG); 
     sSupportedContentTypes.add(VIDEO_3GPP); 
     sSupportedContentTypes.add(VIDEO_3G2); 
     sSupportedContentTypes.add(VIDEO_H263); 
     sSupportedContentTypes.add(VIDEO_MP4); 
     sSupportedContentTypes.add(APP_SMIL); 
     sSupportedContentTypes.add(APP_WAP_XHTML); 
     sSupportedContentTypes.add(APP_XHTML); 
     sSupportedContentTypes.add(APP_DRM_CONTENT); 
     sSupportedContentTypes.add(APP_DRM_MESSAGE); 
     // add supported image types 
     sSupportedImageTypes.add(IMAGE_JPEG); 
     sSupportedImageTypes.add(IMAGE_GIF); 
     sSupportedImageTypes.add(IMAGE_WBMP); 
     sSupportedImageTypes.add(IMAGE_PNG); 
     sSupportedImageTypes.add(IMAGE_JPG); 
     // add supported audio types 
     sSupportedAudioTypes.add(AUDIO_AAC); 
     sSupportedAudioTypes.add(AUDIO_AMR); 
     sSupportedAudioTypes.add(AUDIO_IMELODY); 
     sSupportedAudioTypes.add(AUDIO_MID); 
     sSupportedAudioTypes.add(AUDIO_MIDI); 
     sSupportedAudioTypes.add(AUDIO_MP3); 
     sSupportedAudioTypes.add(AUDIO_MPEG3); 
     sSupportedAudioTypes.add(AUDIO_MPEG); 
     sSupportedAudioTypes.add(AUDIO_MPG); 
     sSupportedAudioTypes.add(AUDIO_MP4); 
     sSupportedAudioTypes.add(AUDIO_X_MID); 
     sSupportedAudioTypes.add(AUDIO_X_MIDI); 
     sSupportedAudioTypes.add(AUDIO_X_MP3); 
     sSupportedAudioTypes.add(AUDIO_X_MPEG3); 
     sSupportedAudioTypes.add(AUDIO_X_MPEG); 
     sSupportedAudioTypes.add(AUDIO_X_MPG); 
     sSupportedAudioTypes.add(AUDIO_3GPP); 
     sSupportedAudioTypes.add(AUDIO_OGG); 
     // add supported video types 
     sSupportedVideoTypes.add(VIDEO_3GPP); 
     sSupportedVideoTypes.add(VIDEO_3G2); 
     sSupportedVideoTypes.add(VIDEO_H263); 
     sSupportedVideoTypes.add(VIDEO_MP4); 
    } 
    // This class should never be instantiated. 
    private ContentType() { 
    } 
    public static boolean isSupportedType(String contentType) { 
     return (null != contentType) && sSupportedContentTypes.contains(contentType); 
    } 
    public static boolean isSupportedImageType(String contentType) { 
     return isImageType(contentType) && isSupportedType(contentType); 
    } 
    public static boolean isSupportedAudioType(String contentType) { 
     return isAudioType(contentType) && isSupportedType(contentType); 
    } 
    public static boolean isSupportedVideoType(String contentType) { 
     return isVideoType(contentType) && isSupportedType(contentType); 
    } 
    public static boolean isTextType(String contentType) { 
     return (null != contentType) && contentType.startsWith("text/"); 
    } 
    public static boolean isImageType(String contentType) { 
     return (null != contentType) && contentType.startsWith("image/"); 
    } 
    public static boolean isAudioType(String contentType) { 
     return (null != contentType) && contentType.startsWith("audio/"); 
    } 
    public static boolean isVideoType(String contentType) { 
     return (null != contentType) && contentType.startsWith("video/"); 
    } 
    public static boolean isDrmType(String contentType) { 
     return (null != contentType) 
       && (contentType.equals(APP_DRM_CONTENT) 
         || contentType.equals(APP_DRM_MESSAGE)); 
    } 
    public static boolean isUnspecified(String contentType) { 
     return (null != contentType) && contentType.endsWith("*"); 
    } 
    @SuppressWarnings("unchecked") 
    public static ArrayList<String> getImageTypes() { 
     return (ArrayList<String>) sSupportedImageTypes.clone(); 
    } 
    @SuppressWarnings("unchecked") 
    public static ArrayList<String> getAudioTypes() { 
     return (ArrayList<String>) sSupportedAudioTypes.clone(); 
    } 
    @SuppressWarnings("unchecked") 
    public static ArrayList<String> getVideoTypes() { 
     return (ArrayList<String>) sSupportedVideoTypes.clone(); 
    } 
    @SuppressWarnings("unchecked") 
    public static ArrayList<String> getSupportedTypes() { 
     return (ArrayList<String>) sSupportedContentTypes.clone(); 
    } 
} 

Répondre

0

Voici la liste complète: https://www.iana.org/assignments/media-types/media-types.xhtml

Il est référencé dans la documentation Android ici: https://developer.android.com/guide/topics/providers/content-provider-creating.html#MIMETypes

Notez que ces types MIME sont pris en charge que si l'utilisateur a l'application appropriée pour elle. Je ne pense pas que vous pouvez afficher les types MIME pris en charge par programmation. Cependant, vous pouvez vérifier si celui que vous voulez utiliser est supporté en utilisant un code comme celui-ci:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(someUri, "YOUR_MIME_TYPE_HERE"); 
if(intent.resolveActivity(activity.getPackageManager()) != null) 
{ 
    lActivity.startActivity(intent); 
} 
else 
{ 
    Log.w(TAG, "There is no application for this MIME type"); 
}