Android 信息中URL地址识别问题

前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN:
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

 

在短信中存在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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值