Android 将电话号码转换为API 14中的E164格式

Android 将电话号码转换为API 14中的E164格式,android,Android,我正在尝试将任何电话号码(本地或国际)格式化为标准E164格式,但PhoneNumberUtils中的方法大多添加到API级别21和更新版本中,其他方法没有持久的格式化,以确保以标准方式显示NBumber,是否有办法实现这一点,不使用任何库?由于Android是开源的,您可以自己导入最新版本的PhoneNumberUtils:您可以使用谷歌的开源库转换您的电话号码。事实上,PhoneNumberRutils使用相同的库 但是,该库需要ISO 3166-1两个字母的国家/地区代码,您可以使用网络语

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

由于Android是开源的,您可以自己导入最新版本的
PhoneNumberUtils

您可以使用谷歌的开源库转换您的电话号码。事实上,PhoneNumberRutils使用相同的库

但是,该库需要ISO 3166-1两个字母的国家/地区代码,您可以使用网络语言作为默认国家/地区代码,可使用。 您可以使用以下代码:

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开发的新手,我使用的是android Studio 1.5