您的位置:首页 > 移动开发 > Android开发

[Debug记录]getFileExtensionFromUrl 没有值 null

2016-04-04 14:04 585 查看
 

android.webkit.MimeTypeMap.getFileExtensionFromUrl

API文档没有注明,这个url不能包含中文



在源码中注明



 

如果文件名中包含了特殊字符,就不认为是匹配正确(只认为文件名包含大小写英文字母、数字 . - ( ) % 匹配正确)

解决方案:

复制源码中的这个函数,去掉正则表达式匹配部分,不匹配文件名,放到自己的.java文件里

public static String getFileExtensionFromUrl(String url) {
if (!TextUtils.isEmpty(url)) {
int fragment = url.lastIndexOf("#");
if (fragment > 0) {
url = url.substring(0, fragment);
}

int query = url.lastIndexOf("?");
if (query > 0) {
url = url.substring(0, query);
}

int filenamePos = url.lastIndexOf(File.separator);
String filename =
0 <= filenamePos ? url.substring(filenamePos + 1) : url;

// if the filename contains special characters, we don't
// consider it valid for our matching purposes:
if (!filename.isEmpty()) {
int dotPos = filename.lastIndexOf(".");
if (0 <= dotPos) {
return filename.substring(dotPos + 1);
}
}
}

return "";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 调试