[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 ""; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories