拨号键盘匹配联系人问题

拨号键盘匹配联系人问题

一、问题现象

   拨号键盘不能通过快速检索通讯录中联系人名字的汉字首字母(简拼)实现通讯录匹配。

二、现象分析

   手机存有1505个联系人,SIM卡存有115个联系人,SIM卡存有“紫天”的联系人,拨号键盘输入“98”,通过号码“98”来搜索“紫天”这个号码,没有搜索出来。由于“紫天”是比较靠后的联系人,超过的搜索的范围2500(这当中包括手机、住宅等联系方式)个,故没有搜索出来是正常的。

三、验证过程

由于每个联系人有2个电话号码,号码总数是3000多。增大搜索号码数量后(大约3200条),就可以成功搜索到“紫天”的联系人,但是速度稍慢了些。当联系人数量足够大的时候,搜索不到靠后联系人的问题依然存在。

四、解决措施

限制搜索数量是为了提高拨号反应速度。代码里面限制搜索总共的号码数量为2500,当电话号码超过2500的时候,也只会搜索2500个号码,当把限制数量增大后,可以搜索到更多的电话号码,同时可以搜索到名字叫‘紫天’的联系人。在速度和搜索结果都需要的情况下,建议采取一个中间的状态,保证搜索速度和搜索结果都可以接受,所以还是限制搜索的数量在2500条就可以了,2500个号码可以满足绝大部分需求。

具体代码:ContactsApplication.java

-   if (contactCursor.getPosition() > 2500)break;

+   if (contactCursor.getPosition() > 3200)break;

  String number =PhoneNumberUtils.stripSeparators(contactCursor.getString(2));

     String name = contactCursor.getString(3);

      long id = contactCursor.getLong(0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值