java - 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;
}
问候。
解决方案
推荐阅读
- sql-server - 获取记录 - 日期范围内是否存在日期
- javascript - 使用 React 组件完成后,如何使用 Styles 清理 Material-ui?
- c - 是否可以检测程序是否已通过 /proc/self/mem 动态链接?
- android - 为什么 RadioGroup 没有三参数构造函数?
- node.js - 无法在 JSON 上读取超过 1 个级别
- email - 如何将自定义字段的元数据放入电子邮件
- javascript - 如何为递归循环html画布添加延迟
- javascript - 如何限制 WebRTC 使用的 UDP 端口范围?
- node.js - 谷歌应用引擎的灵活总是将流量路由到同一个实例?
- node.js - Mongoose - 检查 `upsert` 是否创建了新文档