Найдите код страны с помощью мобильного номера Android

Есть ли способ узнать код страны по номеру мобильного телефона. По сути, я работаю над приложением для чата, мне нужно найти код страны, используя номер мобильного телефона. Является ли это возможным?

Например:

My Country - India,
Country Code - +91,
My number - 9787248566

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


person Amsheer    schedule 25.08.2016    source источник


Ответы (2)


Используйте TelephonyManager.getSimCountryIso().

Если вы хотите сопоставить это с номером, см. как получить телефон страны префикс из iso

person F43nd1r    schedule 25.08.2016

Если у вас уже есть полный номер мобильного телефона в определенном формате, например. +91-99xxxxxxxx и хотите получить код страны = IN, тогда вот ссылка на решение.

Используйте библиотеку в своем градиенте.

//Phone Utils lib.
implementation 'com.googlecode.libphonenumber:libphonenumber:7.0'

И код, который поможет найти код страны и другую информацию, приведен ниже.

PhoneNumberUtil utils = PhoneNumberUtil.getInstance();
try {
    for (String region : utils.getSupportedRegions()) {
        // Check whether it's a valid number.
        boolean isValid = utils.isPossibleNumber(mobileNo, region);
        if (isValid) {
            Phonenumber.PhoneNumber number = util.parse(mobileNo, region);
            // Check whether it's a valid number for the given region.
            isValid = utils.isValidNumberForRegion(number, region);
            if (isValid) {
                Log.d("Region:" , region); // IN
                Log.d("Phone Code", number.getCountryCode()); // 91
                Log.d("Phone No.", number.getNationalNumber()); // 99xxxxxxxxxx  
            }
        }
    }
} catch (NumberParseException e) {
    e.printStackTrace();
}
person Harpreet    schedule 23.07.2019