Intereting Posts

Получить номер телефона без кода страны в Android

Я могу получить номер телефона из входящего вызова или из sms-сообщения. К сожалению, в случае SMS может быть код страны. Поэтому в основном мне нужно получить простой номер телефона без кода страны, чтобы сравнить его с существующими номерами в «Контакты».

Solutions Collecting From Web of "Получить номер телефона без кода страны в Android"

Если вы хотите сравнить номера телефонов, вы всегда можете использовать

PhoneNumberUtils.compare(number1, number2); 

или

 PhoneNumberUtils.compare(context, number1, number2); 

Тогда вам не нужно беспокоиться о коде страны, он просто сравнит числа с обратным порядком и посмотрит, совпадают ли они (достаточно для целей callerID, по крайней мере).

Быстрый непроверенный подход (номера телефонов 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?... } 

То вы просто называете эти функции