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位长度的号码的匹配;
转载自http://www.cnblogs.com/flyme/archive/2011/07/07/2100017.html
相关推荐
在Android编程中,号码匹配位数修改是一个重要的技术点,尤其涉及到通信软件和社交应用中,需要精确地识别和比对电话号码。Android系统默认的号码匹配位数是7位,这意味着如果两个电话号码从右边开始有7位是相同的,...
isIDCard15 : 验证身份证号码15位 isIDCard18 : 验证身份证号码18位 isEmail : 验证邮箱 isURL : 验证URL isZh : 验证汉字 isUsername : 验证用户名 isDate : 验证yyyy-MM-dd格式的日期校验,已考虑平闰年 isIP : ...
一个语音识别模糊匹配的demo,主要工作流程如下: 1,将目标字符集转换为拼音; 2,获取科大讯飞语音识别的结果; 3,将识别结果转换为拼音; 4,在目标拼音集中进行拼音的匹配查找; 5,对于查找不到的,进行易混...
本文将深入探讨"Android蓝牙匹配与连接"的相关知识点,包括蓝牙的基础概念、蓝牙匹配过程、连接步骤以及实现通信的方法。 首先,蓝牙是一种低功耗的无线通信标准,允许设备在短距离内(通常10米左右)互传数据。在...
在这个“OpenCV4Android学习之图像特征匹配ORB算法”主题中,我们将深入探讨ORB算法的原理、如何在Android上使用OpenCV实现ORB特征匹配,以及一个简单的示例Demo。 首先,ORB(Oriented FAST and Rotated BRIEF)是...
本文将深入探讨如何获取Android应用的32位签名,以及这个过程的重要性。 首先,我们需要理解Android应用签名的基本概念。在Android系统中,签名是一个数字证书,它包含了开发者的信息和用于验证APK的公钥。这个签名...
在Android平台上实现蓝牙自动匹配和连接是一项常见的任务,特别是在物联网(IoT)设备或智能硬件的交互中。本文将深入探讨如何在Android应用中设置蓝牙自动连接功能。 首先,我们需要理解Android蓝牙的基础知识。...
本文讨论的是在Android平台上实现身份证号码的实时识别技术,主要基于像素匹配的方法。该技术涉及到Android客户端应用开发,对于移动设备上的身份验证或信息录入具有重要意义。以下是系统的实现步骤和关键技术: 1....
"猿匹配"作为一个程序猿非严肃婚恋交友应用,其背后的技术实现是Android开发的典型应用案例。这个应用不仅涉及到基本的用户界面设计、数据存储与同步,还可能包括社交功能、地理位置服务以及个性化推荐算法等复杂...
### Android Eclipse 64位下载相关知识点 #### 一、Eclipse简介 Eclipse是一款开源免费的集成开发环境(IDE),支持多种编程语言,包括Java、C/C++、PHP等。在Android开发领域,Eclipse曾经是主流的开发工具之一,...
在Android开发中,有时我们需要实现一个功能,即查询手机用户输入的号码的归属地信息。这个功能在诸如电话簿管理、防骚扰应用等场景中非常常见。本项目提供了一个基于本地数据库的Android手机号码归属地查询Demo,让...
在Android开发中,搜索记录的保存和展示是用户体验的重要组成部分,特别是当用户需要频繁搜索时。本篇文章将详细探讨两种常见的实现方式:SharePreferences和SQLite数据库,并涉及自动匹配功能的实现。 首先,我们...
在Android应用中,匹配通常是指在XML布局文件中定义的UI元素与其在Java代码中的对应对象之间的关联。例如,我们可能有一个Button在XML布局中,其id为`@+id/myButton`。在Activity或Fragment的Java代码中,我们会使用...
当搜索结果加载到ListView中时,我们需要遍历每个ListView项(ViewHolder),找到包含匹配搜索关键词的TextView,并修改它的样式。这可以通过设置自定义的SpannableString或者运用Spanned类来实现。比如,我们可以...
在Android客户端开发中,模糊查找是一项重要的功能,它允许用户输入部分关键词就能匹配到相关的数据,极大地提高了用户体验。本文将详细讲解如何在Android应用中实现模糊查找,包括基础原理、关键技术和最佳实践。 ...
在Android系统中,修改系统文件访问权限涉及到对操作系统底层的深度理解,这通常需要root权限。以下是关于这个主题的详细知识点: 1. **init.rc**:这是Android系统启动时执行的第一个脚本,位于系统的system/core/...
在Android平台上实现人脸识别和人脸匹配是一项复杂而有趣的任务,它涉及到计算机视觉和机器学习领域的技术。在这个项目中,开发者使用了OpenCV和JavaCV库来完成这一目标。OpenCV(Open Source Computer Vision ...