gpt4 book ai didi

android - 在 API 14 中将电话号码转换为 E164 格式

转载 作者:行者123 更新时间:2023-11-29 01:25:59 30 4
gpt4 key购买 nike

我正在尝试将任何电话号码(本地或国际)格式化为标准的 E164 格式,但 PhoneNumberUtils 中的方法最多添加到 API 级别 21 和更高版本,其他人没有持久的格式确保标准方式显示数字,有没有什么方法可以实现这一点,而不使用任何库?

最佳答案

您可以使用 Google 的开源库 libphonenumber转换您的电话号码。事实上,PhoneNumberUtils 使用相同的库。

然而,图书馆需要 ISO 3166-1 两个字母的国家代码,您可以使用网络语言作为默认国家代码,使用 getNetworkCountryIso 可用.您可以使用以下代码:

PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber formattedNumber = null;
String formatted = null;

try {
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = manager.getNetworkCountryIso();
formattedNumber = phoneUtil.parse(phoneNumber, countryCode);
formatted = phoneUtil.format(formattedNumber,PhoneNumberUtil.PhoneNumberFormat.E164);

if (StringUtils.isEmpty(formatted) == false && formatted.length() > 0 && StringUtils.isEmpty(name) == false && name.length() > 0) {
listName.add(name);
listPhoneNumber.add(formatted);
}
} catch (NumberParseException e) {
continue;
}

关于android - 在 API 14 中将电话号码转换为 E164 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044717/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com