• android 电话薄先10位匹配,若是无法匹配,则换成7位匹配


    案例 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 (alpsexternalsqliteandroid),getMinMatch()返回值
    2、PhoneNumberUtils.java (alpsframeworksase elephonyjavaandroid elephony)中的MIN_MATCH;
    【After KK1】
    (1).改动OldPhoneNumberUtils.cpp(alpsexternalsqliteandroid),getMinMatch()返回值
    (2).改动PhoneNumberExt.java (mediatekframeworksaseopjavacommediatekop elephony)中的
    getMinMatch() 返回值
     
    另外。请改动DialerSearchUtils.java (alpspackagesproviderscontactsprovidersrccomandroidproviderscontacts)中的
     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是数据库中找出来的完整号码

  • 相关阅读:
    vue的class绑定
    less里面calc() 语法
    问题
    Spring Boot面试题
    Redis面试题
    nginx面试题
    rabbitMQ面试题
    Linux+Git命令
    docker
    JAVA常用单词
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6774341.html
Copyright © 2020-2023  润新知