Android 格式化包含国家代码的国际电话号码字符串
Posted
技术标签:
【中文标题】Android 格式化包含国家代码的国际电话号码字符串【英文标题】:Android format an international phone number string with its country code included 【发布时间】:2019-07-25 11:35:54 【问题描述】:假设我有这个String
:
String phoneNumber = "+15611234567"
在此处使用PhoneNumberUtils.formatNumber(phoneNumber);
并将其格式化为+1-561-123-4567
但是,当我有一个非美国电话号码时包含其国家/地区代码,例如
String phoneNumber = "+96170123456" //Lebanese phone number
它不起作用,它只是按原样返回而不是格式化。
返回: +96170123456
预期: +961 81-932-452
或任何不同的格式(例如 +961 70 123 456
)
如果你需要它,下面是不起作用的代码:
public void setPhone(final String phone)
TextView phoneTV = view.findViewById(R.id.phone);
String formattedNumber = PhoneNumberUtils.formatNumber(phone);
phoneTV.setText(formattedNumber);
电话号码的国家代码不一致,可能来自任何国家。
【问题讨论】:
【参考方案1】:formatNumber (String phoneNo) 此方法在 API 级别 21 中已弃用。
所以对于 API 级别 21 或以上使用:
formatNumber(String phoneNumber, String defaultCountryIso)
【讨论】:
以上是关于Android 格式化包含国家代码的国际电话号码字符串的主要内容,如果未能解决你的问题,请参考以下文章