Android MimeTypeMap 获取 url/uri 的扩展名和 mimeType

Android 使用MimeTypeMap获取url/uri的扩展名和mimeType

 val url = "http://blog.xxx.cn/images/people.bmp"
 
 val extension = MimeTypeMap.getFileExtensionFromUrl(url)
 
 println("=========getFileExtensionFromUrl  $extension")
 
 val mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension)
 
 println("=========getMimeTypeFromExtension   $mimeType")

🍎 结果:

 I/System.out: =========getFileExtensionFromUrl    bmp
 I/System.out: =========getMimeTypeFromExtension   image/x-ms-bmp

使用系统自带软件打开该 url/uri

    /**
     * 直接打开 Url 对应的系统应用
     * <pre>
     *     eg: url是视频,则直接用系统的播放器打开
     * </pre>
     */
    public static void openUrl(Activity activity, String url) {
        final FileType fileType = FileType.INSTANCE.typeByFileSuffix(FileUtils.getFileSuffix(url));
        if (fileType == null) {
            return;
        }
        try {
            final String extension = MimeTypeMap.getFileExtensionFromUrl(url);
            final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
            final Intent mediaIntent = new Intent(Intent.ACTION_VIEW);
            mediaIntent.setDataAndType(Uri.parse(url), mimeType);
            activity.startActivity(mediaIntent);
        } catch (Exception e) {
            L.e("openUrl error : " + e.getMessage());
        }
    }
posted @ 2020-05-08 14:13  javakam  阅读(0)  评论(0)    收藏  举报  来源