为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定android中的MIME类型?

如何确定android中的MIME类型?

神不在的星期二 2019-08-12 10:17:25
如何确定android中的MIME类型?假设我有一个完整的文件路径,如:(/ sdcard / tlogo.png)。我想知道它的mime类型。我为它创建了一个函数public static String getMimeType(File file, Context context)    {     Uri uri = Uri.fromFile(file);     ContentResolver cR = context.getContentResolver();     MimeTypeMap mime = MimeTypeMap.getSingleton();     String type = mime.getExtensionFromMimeType(cR.getType(uri));     return type;}但是当我调用它时,它返回null。File file = new File(filePath);String fileType=CommonFunctions.getMimeType(file, context);
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

首先,您应该考虑调用MimeTypeMap#getMimeTypeFromExtension(),如下所示:

// url = file path or whatever suitable URL you want.
public static String getMimeType(String url) {
    String type = null;
    String extension = MimeTypeMap.getFileExtensionFromUrl(url);
    if (extension != null) {
        type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    }
    return type;}


查看完整回答
反对 回复 2019-08-12
?
万千封印

TA贡献1891条经验 获得超3个赞

检测任何文件的mime类型

public String getMimeType(Uri uri) {           
    String mimeType = null;
    if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
        ContentResolver cr = getAppContext().getContentResolver();
        mimeType = cr.getType(uri);
    } else {
        String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri                .toString());
        mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
                fileExtension.toLowerCase());
    }
    return mimeType;}


查看完整回答
反对 回复 2019-08-12
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

上面的MimeTypeMap解决方案在我的使用中返回null。这很有效,而且更容易:

Uri uri = Uri.fromFile(file);ContentResolver cR = context.getContentResolver();String mime = cR.getType(uri);


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 684 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信