【问题标题】:Android format an international phone number string with its country code includedAndroid 格式化包含国家代码的国际电话号码字符串
【发布时间】: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);
}

电话号码的国家代码不一致,可能来自任何国家。

【问题讨论】:

    标签: java android formatting phonenumberutils


    【解决方案1】:

    formatNumber (String phoneNo) 此方法在 API 级别 21 中已弃用。

    所以对于 API 级别 21 或以上使用:

    formatNumber(String phoneNumber, String defaultCountryIso)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-02
      • 2016-07-27
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      相关资源
      最近更新 更多