PhoneNumberFormattingTextWatcher со странойISO недоступен ниже уровня API 21 - PullRequest
1 голос
/ 27 января 2020

Я хочу добиться автоматического форматирования для телефона всех стран, поэтому для этого я использую код ниже

edittext.addTextChangedListener(new PhoneNumberFormattingTextWatcher("#countryIso#")

Поэтому формирование будет работать на основе countryISO, но этот параметр класса PhoneNumberFormattingTextWatcher применяется выше API-уровень 21 . Как я могу добиться такой же функциональности в устройствах нижнего уровня API?

Если мы не используем его, формирование будет работать только в соответствии с локалью текущего устройства. Я попробовал библиотеку libPhoneNumber, но не нашел решения.

Любое предложение приветствуется.

Ответы [ 2 ]

0 голосов
/ 27 января 2020
 TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);

CountryID = manager.getSimCountryIso (). ToUpperCase ();

используйте этот код, получите код страны и создайте логи c в этом коде

0 голосов
/ 27 января 2020

Это не работа в 21 или выше API. Так что вы можете попробовать это

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher("US"));
        }else {
            mPhoneText.addTextChangedListener(new PhoneNumberFormattingTextWatcher());
        }

и установить inputType = "phone"

Надеюсь, это поможет!

...