在Android中获取没有国家代码的电话号码

我可以从来电或短信获取电话号码。 不幸的是,在短信的情况下,可能会有国家代码。 因此,基本上我需要获得没有国家代码的普通电话号码,以便与联系人中的现有号码进行比较。

Solutions Collecting From Web of "在Android中获取没有国家代码的电话号码"

如果你想比较电话号码,你可以随时使用

PhoneNumberUtils.compare(number1, number2); 

要么

 PhoneNumberUtils.compare(context, number1, number2); 

那么你不必担心国家代码,它只是比较倒序的数字,看看它们是否匹配(足以满足呼叫方的目的)。

快速未经testing的方法(AFAIK电话号码有10位数字):

 // As I said, AFAIK phone numbers have 10 digits... (at least here in Mexico this is true) int digits = 10; // the char + is always at first. int plus_sign_pos = 0; // Always send the number to this function to remove the first n digits (+1,+52, +520, etc) private String removeCountryCode(String number) { if (hasCountryCode(number)) { // +52 for MEX +526441122345, 13-10 = 3, so we need to remove 3 characters int country_digits = number.length() - digits; number = number.substring(country_digits); } return number; } // Every country code starts with + right? private boolean hasCountryCode(String number) { return number.charAt(plus_sign_pos) == '+'; // Didn't String had contains() method?... } 

那么你只需调用这些函数