2011-07-21 76 views

回答

2
  1. Get the calling number.
  2. 查找国家代码是
  3. 在地图中查找的国家。您可以使用here来构造它。

希望它有帮助。

+0

不知道这回答了这个问题。如何找到国家代码? – Psypher

0

使用libphonenumber

public String convertPhoneNumber(String phoneNumber, PhoneNumberUtil.PhoneNumberFormat format) { 
    String resultNumber = ""; 
    Phonenumber.PhoneNumber myNumberProto = null; 
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
    if (!phoneNumber.substring(0, 1).equals("+")) { 
     try { 
      myNumberProto = phoneUtil.parse(phoneNumber, 
        Locale.getDefault().getCountry().toUpperCase()); 
      resultNumber = phoneUtil.format(myNumberProto, 
        format); 
     } catch (NumberParseException e) { 
      System.err.println("NumberParseException was thrown: " + e.toString()); 
     } 
    } else { 
     try { 
      myNumberProto = phoneUtil.parse(phoneNumber, "ZZ"); 
      resultNumber = phoneUtil.format(myNumberProto, 
        format); 
     } catch (NumberParseException e) { 
      System.err.println("NumberParseException was thrown: " + e.toString()); 
     } 
    } 

    return resultNumber; 
} 


public String getRegionOfPhoneNumber(String callNumber) { 
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
    Phonenumber.PhoneNumber myNumberProto = null; 
    callNumber = convertPhoneNumber(callNumber, PhoneNumberUtil.PhoneNumberFormat.E164); 
    try { 
     myNumberProto = phoneUtil.parse(callNumber, "ZZ"); 
    } catch (NumberParseException e) { 
     e.printStackTrace(); 
    } 
    String result = ""; 
    if (myNumberProto != null) { 
     result = phoneUtil.getRegionCodeForCountryCode(myNumberProto.getCountryCode()); 
    } 
    return result; 
} 

public String getCountryNameOfPhoneNumber(String callNumber) { 
    String result = ""; 
    String regionCode = getRegionOfPhoneNumber(callNumber); 
    if (!regionCode.equals("")) { 
     result = new Locale("", regionCode).getDisplayCountry(Locale.getDefault()); 
    } 
    return result; 
} 

用法: getCountryNameOfPhoneNumber( “电话号码”);

希望这可以帮助别人