android获取文件getMimeType的两种方法

简介:

方法1:

import java.util.Locale;

private static String getSuffix(File file) {
            if (file == null || !file.exists() || file.isDirectory()) {
                return null;
            }
            String fileName = file.getName();
            if (fileName.equals("") || fileName.endsWith(".")) {
                return null;
            }
            int index = fileName.lastIndexOf(".");
            if (index != -1) {
                return fileName.substring(index + 1).toLowerCase(Locale.US);
            } else {
                return null;
            }
    }

    public static String getMimeType(File file){
          String suffix = getSuffix(file);
            if (suffix == null) {
                return "file/*";
            }
            String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suffix);
            if (type != null || !type.isEmpty()) {
                return type;
            }
            return "file/*";
}

方法2:

public static String getMimeType(String filePath) {
    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    String mime = "text/plain";
    if (filePath != null) {
         try {
             mmr.setDataSource(filePath);
             mime = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE);
         } catch (IllegalStateException e) {
	    return mime;
         } catch (IllegalArgumentException e) {
	    return mime;
	} catch (RuntimeException e) {
	    return mime;
	}
    }
    return mime;
}






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5089525.html,如需转载请自行联系原作者


相关文章
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
77 2
基于Android P,自定义Android开机动画的方法
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
244 1
|
3月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
184 2
|
24天前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
46 15
Android 系统缓存扫描与清理方法分析
|
2月前
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
46 2
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
109 0
|
3月前
|
Android开发
Android在rootdir根目录创建自定义目录和挂载点的方法
本文介绍了在Android高通平台的根目录下创建自定义目录和挂载点的方法,通过修改Android.mk文件并使用`LOCAL_POST_INSTALL_CMD`变量在编译过程中添加目录,最终在ramdisk.img的系统根路径下成功创建了`/factory/bin`目录。
207 1
|
3月前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
124 1
|
3月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
437 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82