一种电话号码匹配的方法
技术领域
本发明涉及移动通信终端,尤其涉及移动通信终端中电话号码匹配应用的方法。
背景技术
在移动通讯领域,移动通信终端对电话簿记录的支持越来越强大,可以支持的电话号码也越来越多,在电话号码和记录姓名的匹配上方法格式各样,但是都不完备,不能很好地解决问题,主要体现在本地市话和移动通信终端通话的号码匹配上。
移动通信终端和本地市话之间的通信是非常普遍和常用的,用户通常存储记录号码时直接存入不带区号的号码。但是本地市话呼叫移动通信终端,移动通信终端的来电号码前会带上本地区号,这样就会导致移动通信终端的电话簿记录中存储的号码无法完全匹配,从而找不到记录。比如,手机上存有一条记录“办公室”,电话号码为68895000,用办公室电话给这个手机打电话,则在手机上会显示02168895000,而不显示“办公室”。
针对这个问题,有的手机采用从后面开始的8位匹配或者9位匹配,这样就可以把本地市话来电解决掉了,但是又出现了手机号码支持不够的质量问题,带来投诉。由于在国内的手机之间通信,手机号码只有11位,而国内长途区号加号码大多数也是在11位(有12位的),于是很多手机又更改为11位匹配:即在11位以内的号码,从后面号码开始采取完全匹配,而超出11位的号码,只匹配后面11位。这个方法解决了类似国际长途区号或者特别号码再加上11位号码的长号码的匹配,对于本来最常用的本地市话号码问题却没有任何用处,上面例子中的02168895000和68895000将被当做不同的来电号码处理,失去了号码缩位匹配的意义,影响了号码匹配的准确性和智能性。
有的手机在11位匹配的方法上做了改进,在说明书中建议用户输入电话簿记录的号码时在前面增加本地市话号码。比如,手机上存有一条记录“办公室”,电话号码为02168895000,用办公室电话给这个手机打电话,手机就可以找到记录,在手机上会显示“办公室”。这种改进让用户对每一条本地市话记录都增加了区号,不符合用户的习惯,另外,手机发起主叫时,又出现了匹配失效的问题。因为用户在输入号码时习惯性都是只需要输入电话号码而不希望输入区号,这样手机拨打“68895000”时,手机上就不能正确显示“办公室”。
发明内容
本发明所要解决的技术问题是提供一种电话号码匹配的方法,可以实现移动通信终端和本地市话之间通话时的号码匹配的准确性和智能性。
为解决上述技术问题,本发明提出了一种电话号码匹配的方法,包括以下步骤:
(a)在移动通信终端侧设置一个本地电话区号,用户添加电话簿记录时,对于本地市话只需要保存电话号码,不需要添加区号;
(b)来电时,移动通信终端提取来电号码和预设的本地区号进行对比,如果匹配出本地区号,执行步骤(c),否则执行步骤(d);
(c)将所述来电号码中区号后面的号码和电话簿记录的号码进行匹配查找,得到号码匹配结果,结束;
(d)将整个来电号码和电话簿记录的号码进行匹配查找,得到号码匹配结果,结束。
进一步地,上述方法还可具有以下特点:还包括以下主叫号码匹配的步骤:
(i)移动通信终端发起呼叫时,提取用户输入的呼叫号码和预设的本地区号进行对比,如果匹配出本地区号,执行步骤(j),否则执行步骤(k);
(j)将所述呼叫号码中区号后面的号码和电话簿记录的号码进行匹配查找,得到号码匹配结果,结束;
(k)将整个呼叫号码和电话簿记录的号码进行匹配查找,得到号码匹配结果,结束。
进一步地,上述方法还可具有以下特点:所述步骤(b)中对所述来电号码和所述本地区号进行匹配时,是用预设的本地区号和需要匹配的电话号码的开头相应位数的号码进行匹配,如果相同,则匹配成功,否则匹配失败。
进一步地,上述方法还可具有以下特点:所述步骤(c)中,将所述来电号码中区号后面的号码与电话簿某条记录的号码进行匹配时,按以下步骤进行:
(c1)以所述来电号码中区号后面的号码位数为最大匹配位数,如果该最大匹配位数与该条记录的号码位数相同,执行下一步,如果该最大匹配位数小于该条记录的号码的位数,执行步骤(c3),如果该最大匹配位数大于该条记录的号码位数,则匹配失败,结束;
(c2)对所述来电号码中区号后面的号码和该条记录的号码,从最后一位开始逐位匹配,如果两者完全相同,则匹配成功,否则匹配失败,结束;
(c3)对所述来电号码中区号后面的号码和该条记录的号码,从最后一位开始逐位匹配,如果两者不同,则匹配失败,结束,如果两者完全相同,执行下一步;
(c4)继续对该条记录的号码的剩余位数和预设的本地区号进行匹配,匹配位数以预设的本地区号位数为准,如果两者也完全相同,则匹配成功,否则匹配失败,结束。
进一步地,上述方法还可具有以下特点:步骤所述(d)中将整个来电号码和电话簿某条记录的号码进行匹配时,是以所述来电号码位数为最大匹配位数,从最位一位开始逐位匹配,如果两者完全相同,则匹配成功,否则匹配失败。
由上可知,本发明通过用户预先设置本地区号进行号码匹配的方法,可以非常有效地实现来电号码的准确匹配,大大改善了来电显示尤其是移动通信终端和本地市话之间通信的来电显示的效果,也兼顾了移动通信终端发起本地市话的号码匹配问题,并不会对用户的使用习惯带来任何改变。识别准确率大大提高,方便了用户的使用。采用本发明方法进行号码匹配,用户在添加电话簿记录时,本地市话号码可以加区号,也可以不加区号;来电显示和主叫显示、电话簿查找都会非常准确,用户唯一需要做的仅仅是设置一次本地区号。
附图说明
图1是本发明处理号码匹配的流程图。
具体实施方式
请参照图1,是本发明电话号码匹配方法的流程图。
本发明所述电话号码匹配方法,具体包括以下步骤:
步骤1,在移动通信终端侧设置一个本地电话区号;
该本地电话区号可以是移动通信终端提供一个友好的界面让用户设置的,对于大批量生产专供某一地区(同一区号)网络锁定的特定版本,可以考虑在出厂时就预先设定当地区号,用户可以根据实际需要更改。
步骤2,用户在移动通信终端上添加电话簿记录时,如果是本地市话号码,只需要保存电话号码,不需要添加区号,但添加区号也可以;
步骤3,移动通信终端收到来电后,把用户预先设置的本地区号和网络侧送过来的电话号码的开头相应位数的号码进行对比,如果相同,则匹配成功,执行步骤4,否则匹配失败,执行步骤5;
步骤4,将来电号码中区号以后的号码送入电话簿,执行步骤6;
步骤5,将整个来电号码送入电话簿;
步骤6,以送入电话簿的号码位数为最大匹配位数,判断该最大匹配位数与电话簿中一条记录的号码位数是否相同,如果是,执行步骤8,否则执行步骤7;
步骤7,判断该最大匹配位数是否小于该条记录的号码的位数,如果是,执行步骤9,否则,即该最大匹配位数大于该条记录的号码位数,则匹配失败,执行步骤11;
步骤8,对送入电话簿的号码和该条记录的号码,从最后一位开始逐位匹配,如果两者不同,则匹配失败,执行步骤11,如果两者完全相同,则匹配成功,结束;
步骤9,对送入电话簿的号码和该条记录的号码,在最大匹配位数以内,从最后一位开始逐位匹配,如果两者不同,则匹配失败,执行步骤11,如果两者完全相同,则执行步骤10;
步骤10,继续对该条记录的号码的剩余位数和预设的本地区号进行匹配,匹配位数以预设的本地区号位数为准,判断两者是否完全相同,如果是,则匹配成功,结束;否则匹配失败,执行步骤11;
步骤11,判断电话簿里是否还有未与送入电话簿的号码尝试匹配的号码,如果是,返回步骤6,否则结束。
采用本发明所说的方法,用户存储电话簿记录时,本地市话号码不需要添加区号,这符合绝大多数用户的使用习惯,也比较方便。但是要考虑到会有些用户可能会存储带有区号的本地市话号码。这样,步骤10可以有效兼容少数用户这种做法。
对于移动终端主叫呼出时的号码匹配,只需要将上述流程中的来电号码改为用户输入的呼叫号码即可,同样可以达到准确匹配的目的。
下面举例说明本发明的效果:
例1:手机用户设施本地区号为“021”,而在电话簿中有两条记录分别为“68895000”、“02168895001”,这两个号码拨打手机,按上述流程匹配后,手机上都会正确地显示出号码对应的记录信息;
例2:手机用户设施本地区号为“021”,而在电话簿中有两条记录分别为“68895000”、“02168895001”,手机拨打这两个号码,按上述流程匹配后,手机上都会正确地显示出号码对应的记录信息。