Как определить код страны в номере?
Нашел решение, брать код страны и соответственно нему подставлять +7, +380 и т.д.
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String code = telephonyManager.getSimCountryIso();
Но оно работает не на всех телефонах. На самсунге s8 возвращает null. Есть какой-то ещё способ определить код страны без gps?
Ответы (1 шт):
Данный способ действительно иногда может работать не так как нужно, на различных устройствах и зависит от уровня API девайса, от типа сим-карты, и её наличия в устройстве.
Можете попробовать данную библиотеку. https://github.com/google/libphonenumber
Она позволяет определять страну по первым введенным цифрам номера телефона.
Как подключить её и как пользоваться подробно описано тут: https://medium.com/@youngam/android-how-to-detect-a-country-code-by-the-phone-number-30bacd606bbc
Либо можно написать свою реализацию, запихнув к примеру в хешмапу все 252 страны и соответствующие им номера.