首页 > 解决方案 > GooglePhoneLibNumber:在某些国家/地区无法正常工作

问题描述

我正在使用 GoogleLibNumber API,但某些国家/地区代码出现错误。例如,我添加的号码为 +52161xxxxxxxx 添加为 +5261xxxxxxxx。

并且它不能以任何方式添加,因为它认为添加为+555499xxxxxx的数字是无效的,但这是一种有效的数字格式。我该如何解决这些问题?

我的代码:

public boolean validatePhoneNumber(String number, String code) {
    Phonenumber.PhoneNumber phoneNumber = null;
    PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(mContext);
    String finalNumber = null;
    String isoCode = phoneNumberUtil.getRegionCodeForCountryCode(Integer.parseInt(code));
    boolean isValid = false;
    PhoneNumberUtil.PhoneNumberType isMobile = null;
    try {
        phoneNumber = phoneNumberUtil.parse(number, isoCode);
        isValid = phoneNumberUtil.isValidNumber(phoneNumber);
        isMobile = phoneNumberUtil.getNumberType(phoneNumber);

    } catch (NumberParseException e) {
        e.printStackTrace();
    } catch (NullPointerException e) {
        e.printStackTrace();
    }

    if (isValid
            && (PhoneNumberUtil.PhoneNumberType.MOBILE == isMobile || PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE == isMobile)) {
        finalNumber = phoneNumberUtil.format(phoneNumber,
                PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
        String parseNumber = finalNumber.replaceAll("[^\\d]", "");
        Log.d("TAG", "success: " + parseNumber);
    } else {
        shortWarnToast(getString(R.string.add_new_number_page_add_number_format_wrong));
    }
    //return finalNumber;
    return isValid;
}

问候。

标签: javaandroidandroid-studionumbersnumber-formatting

解决方案


推荐阅读