Предсказать / Определить коды стран для телефонных номеров

У меня есть список номеров мобильных телефонов из разных стран из контактов Android. Некоторые из этих контактов имеют коды стран, а некоторые нет.

Итак, решение может быть:

  1. Получить все поддерживаемые коды стран мира
  2. Цикл со всеми кодами стран
  3. Проверьте правильность номера

Это может быть одним из способов прогнозирования числа поддерживаемых стран. Мне интересно, есть ли лучший способ подойти к этой проблеме?

1 ответ

Решение
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();

String numberStr = "04157012311";
Set<String> allRegions = phoneUtil.getSupportedRegions();
Set<String> validRegions = new LinkedHashSet<String>();

for (String region : allRegions) {
  try {
    if (phoneUtil.isValid(phoneUtil.parse(numberStr, region))) {
      validRegions.add(region);
    }        
  } catch (NumberParseException e) {
    // Handle NumberParseException
  }
}

validRegions будет содержать ISO коды регионов, где может быть расположен ваш номер телефона

Другие вопросы по тегам