返回顶部
首页 > 资讯 > 移动开发 >Android编程中号码匹配位数修改的方法
  • 631
分享到

Android编程中号码匹配位数修改的方法

方法Android 2022-06-06 09:06:48 631人浏览 八月长安
摘要

本文实例讲述了Android编程中号码匹配位数修改的方法。分享给大家供大家参考,具体如下: Android2.1上默认的号码匹配位数是7位,也就是说从右向左算起,如果两个号码有

本文实例讲述了Android编程中号码匹配位数修改的方法。分享给大家供大家参考,具体如下:

Android2.1上默认的号码匹配位数是7位,也就是说从右向左算起,如果两个号码有7位是匹配的,那么就认为是相同的号码,如+86 1234567和01234567是相同的号码;所以判断两个号码是否匹配,简单的用”==”是不行的。

安卓在sqlite层新增了函数phone_numbers_equal用于号码匹配的判断,这个函数是数据库级的,对应的SQL语句是PHONE_NUMBERS_EQUAL,android将该函数以2个参数和3个参数的形式注册到sqlite数据库里,2个参数的情况无非就是号码A和号码B,3个参数则多了一个bool变量,用来指示是否使用严格匹配,这个严格匹配是专门给泰国用的,看来泰国的号码规则比较特别,而在我们国家,这个变量一般情况下都是0了。

进入正题,修改android的号码匹配位数,其实很简单,修改OldPhoneNumberUtils.cpp文件中的最小匹配位数为想要的数字即可,该数字在函数phone_number_compare_loose函数中使用,这个函数其实就是号码匹配的真正函数,文件位置:external\sqlite\android


static int MIN_MATCH = 7; 
//修改成你想要的数字

在framwork层还有个一样的java函数实现,compareLoosely(A,B),framewoeks\base\telephony\java\android\telephony\PhoneNumberUtils.java,其中使用到的MIN_MATCH同样需要修改。

【注】:2.1上 phone_number_compare_loose 和 compareLoosely函数的实现里面少了几句代码,算是BUG吧,会影响英文状态下6位长度的号码的匹配

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号Android 中使用ContentObserver模式获取短信用正则自动填充验证码Android判断11位手机号码的方法(正则表达式)Android正则表达式Android中手机号、车牌号正则表达式大全Android 搜索结果匹配关键字且高亮显示功能Android实现自动匹配关键字并且标红功能Android Java实现余弦匹配算法示例代码从Android源码剖析Intent查询匹配的实现Android编程开发中的正则匹配操作示例


--结束END--

本文标题: Android编程中号码匹配位数修改的方法

本文链接: https://lsjlt.com/news/26347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作