案例 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. linux C 中的volatile使用【转】

    转自:http://blog.csdn.net/sukhoi27smk/article/details/38020583 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器 ...

  2. K-D树问题 HDU 4347

    K-D树可以看看这个博客写的真心不错!这里存个版 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 HDU 4349 #includ ...

  3. ORACLE导入、导出所有数据到文件的SQL语句

    打开cmd窗口,执行如下SQL语句即可 --导出 exp 用户名/密码@localhost/orcl file=d:\111.dump log=d:111.log --或者 1.登录管理员system ...

  4. 1.flume概述

    我们的web服务器等等每天会产生大量的日志,我们要把这些日志收集起来,移动到hadoop平台上进行分析. 那么如何移动这些数据呢?一种方法是通过shell cp到hadoop集群上,然后通过hdfs ...

  5. flask+gunicorn中文文件下载报错问题及解决

    导言 问题源起与一个静态文件下载的接口: from flask import Flask, current_app app = Flask(__name__) @app.route('/file_na ...

  6. snakes

    原地址 讨论区 Changing 算法一 我会随机! 由于我忘了设置多组数据,期望得分0至100. 算法二 我会模拟! 复杂度\(O(t^2)\),期望得分60. 但是很多人忘记题目给出的是环形-- ...

  7. 《Java编程思想》笔记 第十四章 类型信息

    1.RTTI:在运行时识别一个对象类型 JAVA在运行时 有时要 识别对象和类的信息这个机制叫RTTI.Java提供了两种机制去做这件事.传统的RTTI 和 反射. 传统的RTTI  假定编译时就已经 ...

  8. poj 1066(枚举+线段相交)

    Treasure Hunt Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6328   Accepted: 2627 Des ...

  9. poj 2318(叉积判断点在线段的哪一侧)

    TOYS Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13120   Accepted: 6334 Description ...

  10. JS / jquery 实现页面 面板拖动 QQ网页版登陆页面拖动

    参考:慕课网DOM实践探秘 http://www.imooc.com/learn/138 实现需求:点击页面头部,可以拖动面板.使用js原生和jquery 各实现一次. 可以学到:1.鼠标在当前页面的 ...