案例 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. HDU 1798 Tell me the area (数学)

    题目链接 Problem Description     There are two circles in the plane (shown in the below picture), there ...

  2. Raspberry Pi 3b+ 配置摄像头

    1.开启摄像头硬件接口 raspi-config > Interfacing Options > Camera 2.测试 raspistill -v -o test.jpg

  3. mysql 单列索引限制

    innodb_large_prefix. 这个参数默认值是OFF.当改为ON时,允许列索引最大达到3072. >=5.7.7默认打开 <=5.7.6默认关闭 innodb_large_pr ...

  4. xdebug参数说明

    ;;;;;;;;;;;;;;;;;;;;;;;;; Basic Features; xdebug基本功能,如堆栈跟踪,递归错误安全输出,时间内存跟踪等;;;;;;;;;;;;;;;;;;;;;;;;; ...

  5. python 判断平年还是闰年

    while 1: s = input('请填入一个年份:') s = int(s) year = False if s % 100 == 0 and s % 400 == 0: year = True ...

  6. python2.7.12自带pip吗?

    是的,在安装python2.7.12时自带pip安装包,可以在python安装包Scripts下面可以看到.

  7. [libgdx游戏开发教程]使用Libgdx进行游戏开发(8)-粒子系统

    没有美工的程序员,能够依赖的还有粒子系统. 这一章我们将使用libGDX的粒子系统线性插值以及其他的方法来增加一些特效. 你也可以使用自己编辑的粒子效果,比如这个粒子文件dust:http://fil ...

  8. ThreadLocal深度解析

    本文基于jdk1.8.0_66写成 0. ThreadLocal简介 ThreadLocal可以提供线程内的局部对象,合理的使用可以避免线程冲突的问题比方说SimpleDateFormat是线程不安全 ...

  9. SecureCRT的安装、介绍、简单操作

    网上看到一篇名为<SecureCRT的使用方法和技巧(详细使用教程)>的secureCRT教程,可能软件版本与我不一样我安装的是8.1. 原文来源:http://www.jb51.net/ ...

  10. 初识sql注入及sqlmap

    对于sql注入小白的我,上午在红黑联盟的网站上恶补了一下sql注入的基础知识,(走马观花)似乎明白sql注入是怎么一回事,也看了一些关于sqlmap的资料,再次记录一下吧 下面是关于sqlmap这个工 ...