android转换国际格式的电话号码

时间:2010-02-12 17:26:17

标签: android phone-number

我想知道是否可以转换电话号码 当呼叫呼出时,转换为国际格式。

例如,如果是法国用户(对不起,这是我认识的唯一格式 不会犯错:-)尝试用国家格式打电话: 01.47.12.34.56然后一个方法将其转换为国际格式 像这样:+33.1.47.12.34.56

我查看了PhoneNumberUtils的文档,但我不知道是否 有一种方法做我想要的。

3 个答案:

答案 0 :(得分:5)

旧帖子,但如果它可以帮助任何人:使用谷歌的libphonenumber库进行各种格式化和验证电话号码。在这种特殊情况下,要转换为国际格式,请使用同一库中类PhoneNumberUtil中的format(PhoneNumber number, PhoneNumberFormat format) api。

答案 1 :(得分:0)

这个数字不是字符串吗?

使用Java的字符串方法,如果我没有弄错的话,你可以自己轻松完成吗?

所以得到String,关闭0并添加+33

答案 2 :(得分:0)

使用此方法将您的本地号码转换为国际格式,我使用的是Google库https://github.com/google/libphonenumber,如(Aswin Kumar)所述

Java

   public static String formatPhoneNumber(String phoneNumber) {
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    Phonenumber.PhoneNumber formattedNumber = null;
    String formatted = null;

    try {
        TelephonyManager manager = (TelephonyManager) sContext.getSystemService(Context.TELEPHONY_SERVICE);
        String countryCode = manager.getNetworkCountryIso();
        formattedNumber = phoneUtil.parse(phoneNumber, countryCode.toUpperCase());
        formatted = phoneUtil.format(formattedNumber, PhoneNumberUtil.PhoneNumberFormat.E164);
        return formatted;
    } catch (NumberParseException e) {
        e.printStackTrace();
    }
    return null;
}

科特琳

    private fun formatNumber(number: String?) {
    val phoneUtil = PhoneNumberUtil.getInstance()
    var formattedNumber: PhoneNumber? = null
    var formatted: String? = null
    try {
        val manager = applicationContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
        val networkCountryIso: String = manager.networkCountryIso
        Log.i("SERVICE " , "ISO "+ networkCountryIso)
        formattedNumber = phoneUtil.parse(number, networkCountryIso.toUpperCase())
        formatted = phoneUtil.format(formattedNumber, PhoneNumberUtil.PhoneNumberFormat.E164)
        Log.i("SERVICE " , "phone number"+ formatted)
        findCallerId(formatted)
    } catch (e: NumberParseException) {
        e.printStackTrace()
    }
}