This problem is because in the deposit of a domestic normal telephone number, in the database will be stored two, one is the original number, and the other is the number with the country code +86.
13900218888 +8613900218888
So you enter a 6 o'clock match to +86 of 6, but the actual number display is the number that you deposited to display, please be aware.
If you want to modify, please refer to the following methods:
FILE:DataRowHandlerForPhoneNumber.java
@Override
public void Appendsearchabledata (Indexbuilder builder) {
String number = builder.getstring (Phone.number);
if (textutils.isempty (number)) {
Return
}
String Normalizednumber = phonenumberutils.normalizenumber (number);
if (Textutils.isempty (Normalizednumber)) {
Return
}
Builder.appendtoken (Normalizednumber);
Modified for search number
String numberE164 = phonenumberutils.formatnumbertoe164 (
Number, Mdbhelper.getcurrentcountryiso ());
if (numberE164! = null &&!numbere164.equals (normalizednumber)) {
Builder.appendtoken (numberE164);
// }
Modified for search number
}
Android Input 8 or 6 will search for a contact with name and number without 6