案例 1:

假设您保存的有:A:04165191666。 B:5191666。  来电号码是:04165191666  

由于是7位匹配,所以A和B都能够匹配到。可是最佳匹配还是A,最后显示A;

来电5191666则匹配到B。

案例 2:

仅保存 A:04165191666,

来电5191666或者04165191666则都匹配A。

案例 3:

仅保存 B:5191666。

来电5191666或者04165191666则都匹配B。

能够在7匹配的基础上,将符合条件的号码匹配做进一步筛选就可以。

首先,须要将MIN_MATCH改动为7位匹配,请改动下面两仅仅文件。保证return MIN_MATCH都是7

【Bfore KK1】

(1).改动OldPhoneNumberUtils.cpp (alps\external\sqlite\android),getMinMatch()返回值

2、PhoneNumberUtils.java (alps\frameworks\base\telephony\java\android\telephony)中的MIN_MATCH;

【After KK1】

(1).改动OldPhoneNumberUtils.cpp(alps\external\sqlite\android),getMinMatch()返回值

(2).改动PhoneNumberExt.java (mediatek\frameworks\base\op\java\com\mediatek\op\telephony)中的

getMinMatch() 返回值

 

另外。请改动DialerSearchUtils.java (alps\packages\providers\contactsprovider\src\com\android\providers\contacts)中的

 public static Cursor findNumberExactMatchedCursor(Cursor cursor, String normalizedNumber)方法

这里说明一下:





这种方法是在号码匹配的基础上。再进一步过滤精确号码并返回

输入參数:

cursor是全部经过7位匹配后返回数据。兴许会从这里面再做精确匹配

normalizedNumber是call/mms所使用的号码

输出:

若是返回已经匹配上,则

                MatrixCursor exactCursor = matrixCursorFromCursorRow(cursor, cursor.getPosition());

                cursor.close();

                return exactCursor;

若是没有匹配上。则

return null;

 

另外两个号码,说明一下:

normalizedNumber是call/mms所使用的号码

data1是数据库中找出来的完整号码

android 电话薄先10位匹配,若是无法匹配,则换成7位匹配的更多相关文章

  1. 24位PCM采样数据转成16位算法,已实现PCM转WAV在线工具源码支持24bits、16bits、8bits

    目录 算法来源 js版24位PCM转8位.16位代码 js版8位.16位PCM转成24位 附:浏览器控制台下载数据文件代码 相关实现 最近收到几个24位的PCM录音源文件,Recoder库原有的PCM ...

  2. 使用JAVA编写电话薄程序,具备添加,查找,删除等功能

    //该程序需要连接数据库.根据word文档要求所有功能均已实现.//大部分方法基本差不多,//在查询修改的时候能输出 最大ID号 和最小ID号,并且可以对输入的ID号进行判断是否存在(具体方法请查看 ...

  3. Android:日常学习笔记(10)———使用LitePal操作数据库

    Android:日常学习笔记(10)———使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式 ...

  4. ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

    ABP框架简介 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...

  5. OpenCV3.4.1快速集成到Android studio中,10分钟搞定

    OpenCV3.4.1快速集成到Android studio中,10分钟搞定     转载 https://blog.csdn.net/yu540135101/article/details/8259 ...

  6. Java电话薄项目(Java基础入门)

    面向对象程序设计(Java基础) 1.项目介绍: 该项目能够实现对电话薄的添加,查找,修改,删除,排序等基本操作. 用户进入系统中首先进入主菜单中,在主菜单中可以选择相应的操作,用户可以选择每项操作前 ...

  7. 将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

    今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下RGB16位的增强色,写了这个函数: public static int RGB16(int argb ...

  8. 32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)

    32位Windows7上8G内存使用感受+xp 32位下使用8G内存 博客分类: Windows XPWindowsIE企业应用软件测试  我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽 ...

  9. 把一串数字表示成千位分隔形式——JS正则表达式的应用

    梳理思路 要先明白的是,我们将要转换成的数字格式是这样:从个位往左数起,每三位前插入一个千位分隔符,,即可以想象成我们要把每三位数字前面的那个空""匹配出来,并替换成千位分隔符,. ...

随机推荐

  1. UpdateData的用法(转)

    原文转自 https://blog.csdn.net/ddjj_1980/article/details/51452289 UpdateData(TRUE)——刷新控件的值到对应的变量.(外部输入值交 ...

  2. python用户登录,密码错误3次则锁定

    需求: 1.输入用户名密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 实现思路: 1.判断用户是否在黑名单,如果在黑名单提示账号锁定. 2.判断用户是否存在,如果不存在提示账号不存在. 3.判断 ...

  3. How to learn wxPython

    目录 How to learn wxPython Learn Python Choose a good editor Install wxPython Read the wxPython tutori ...

  4. Linux core dump file详解

    Linux core dump file详解 http://www.cnblogs.com/langqi250/archive/2013/03/05/2944931.html

  5. PoI导出列表优化

    针对写了头信息之后,使用for循环遍历会导致数据丢失问题的优化,使用迭代器替代for循环,具体如下: public static boolean ExportDeptLeaderFileToLocal ...

  6. 层级数据模板 案例(HierarchicalDataTemplateWindow)

    1.xaml 文件 <Window x:Class="DataTemplate.HierarchicalDataTemplateWindow"        xmlns=&q ...

  7. WPF拖放功能实现

    写在前面:本文为即兴而作,因此难免有疏漏和词不达意的地方.在这里,非常期望您提供评论,分享您的想法和建议. 这是一篇介绍如何在WPF中实现拖放功能的短文. 首先要读者清楚的一件事情是:拖放主要分为拖放 ...

  8. jquery 的combobox 处理级联

    随笔---jquery 的combobox 处理级联 ------------------------html------------- <select id="groupId&quo ...

  9. docker run 的背后的故事(zz)

    当利用docker run来创建并启动容器的时候,docker后台标准的操作包括: 1.检查本地是否存在指定的镜像,不存在就从公有仓库下载. 当我依瓢画葫芦的运行: sudo docker run - ...

  10. rtsp 学习

    1.1.   RTSP协议简介 一种应用层协议,可基于tcp或udp协议. Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 N ...