Android 信息中URL地址识别问题
2014-03-13 20:14
716 查看
[b]前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof[/b]
正文
在短信中存在URL识别不准确问题,包括大写字母无法识别、与中文字符相连无法识别、大写NET网址无法识别。
特别注意:Google的正则表达式是满足RFC 3987中的大部分内容。针对这个表达式的修改一方面可能会出现不满足RFC 3987规范的情况,还会影响到CTS。
在mediatek\frameworks\base\op\java\com\mediatek\op\util\DefaultPatterns.java里把Pattern.compile改为红线框起来部分:
如果是非op定制的版本,修改alps/framework/base/core/java/android/util/Patterns.java
OP01,09有定制,修改alps/mediatek/operator/OP0X/frameworks/java/com/mediatek/op/util/XXPatternsXX.java
在以上文件中寻找如下代码段:
将原文件类似代码段的尾部,替换成如下高亮所示。
可发现新增加 FILENAME_EXTENSION 定义如下。
目前这个扩展名支持mp3扩展名识别。
若想支持mp4,wma识别,修改如下。其他扩展名依此类推即可。
附上截图部分的代码段:
Pattern.compile(
"((?:((?i)ftp|http|https|rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
+ "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
+ "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
+ "((?:(?:[" + engIriChar + "][" + engIriChar + "\\-]{0,64}\\.)+" // named host
+ topLevelDomainStrForWebUrlExpand
+ "|(?:(?:25[0-5]|2[0-4]" // or ip address
+ "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(?:25[0-5]|2[0-4][0-9]"
+ "|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1]"
+ "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}"
+ "|[1-9][0-9]|[0-9])))"
+ "(?:\\:\\d{1,5})?)" // plus option port number
+ "(\\/(?:(?:[" + engIriChar + "\\;\\/\\?\\:\\@\\&\\=\\#\\~" //plus option query params
+ "\\-\\.\\+\\!\\*\\'\\(\\)\\_])|(?:\\%[a-fA-F0-9]{2}))*"
+ "(?:[" + goodIriChar + "]*\\." + FILENAME_EXTENSION + ")?)?",
Pattern.CASE_INSENSITIVE); /// M: ignore case
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof[/b]
正文
在短信中存在URL识别不准确问题,包括大写字母无法识别、与中文字符相连无法识别、大写NET网址无法识别。
特别注意:Google的正则表达式是满足RFC 3987中的大部分内容。针对这个表达式的修改一方面可能会出现不满足RFC 3987规范的情况,还会影响到CTS。
在mediatek\frameworks\base\op\java\com\mediatek\op\util\DefaultPatterns.java里把Pattern.compile改为红线框起来部分:
如果是非op定制的版本,修改alps/framework/base/core/java/android/util/Patterns.java
OP01,09有定制,修改alps/mediatek/operator/OP0X/frameworks/java/com/mediatek/op/util/XXPatternsXX.java
在以上文件中寻找如下代码段:
将原文件类似代码段的尾部,替换成如下高亮所示。
可发现新增加 FILENAME_EXTENSION 定义如下。
目前这个扩展名支持mp3扩展名识别。
若想支持mp4,wma识别,修改如下。其他扩展名依此类推即可。
附上截图部分的代码段:
Pattern.compile(
"((?:((?i)ftp|http|https|rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
+ "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
+ "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
+ "((?:(?:[" + engIriChar + "][" + engIriChar + "\\-]{0,64}\\.)+" // named host
+ topLevelDomainStrForWebUrlExpand
+ "|(?:(?:25[0-5]|2[0-4]" // or ip address
+ "[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.(?:25[0-5]|2[0-4][0-9]"
+ "|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1]"
+ "[0-9]{2}|[1-9][0-9]|[1-9]|0)\\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}"
+ "|[1-9][0-9]|[0-9])))"
+ "(?:\\:\\d{1,5})?)" // plus option port number
+ "(\\/(?:(?:[" + engIriChar + "\\;\\/\\?\\:\\@\\&\\=\\#\\~" //plus option query params
+ "\\-\\.\\+\\!\\*\\'\\(\\)\\_])|(?:\\%[a-fA-F0-9]{2}))*"
+ "(?:[" + goodIriChar + "]*\\." + FILENAME_EXTENSION + ")?)?",
Pattern.CASE_INSENSITIVE); /// M: ignore case
相关文章推荐
- 针对android HttpUrlConnection 访问含%地址访问失败问题
- ubuntu中eclipse无法识别android手机问题
- AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-aut
- Android使用百度定位API时获取的地址信息为null
- 关于 unity5.3.1 录制 animation 带有 rotation 信息打包 Android 会运动错乱的问题
- Android 学习意外第五季<2>——google GPS定位由经纬度转换地址信息
- 解決Linux下Android开发真机调试设备不被识别问题
- 百度地图API之根据经纬度查询地址信息(Android)
- Android UI性能优化实战 识别绘制中的性能问题
- 使用nodejs的url模块解决地址中的中文乱码问题
- Android 解决下载地址有中文空格问题
- HttpURLConnection 因Android版本不同而导致的Bad Request问题,在2.0+不行,4.0+可以
- 获取android 设备的cpu gpu信息 mac地址
- 解决php URL地址传输乱码问题和下载文件名乱码的问题
- Android 6.0 使用HttpURLConnection 使用Get提交遇到405等问题。
- 发布一个IE8的加速器,解决非超链接的URL地址浏览问题
- Android使用HttpURLConnection的302重定向问题
- 有关Google nexus7 连接PC后MTP无法识别的问题(系统是android 4.3)
- Android ListView 加载图片如何解决多张地址一样会导致部分图片加载不了的问题
- android真机测试时手机不能识别的问题