【发布时间】:2011-07-21 08:28:02
【问题描述】:
您好,有什么方法可以在安卓手机上获取来电的国家名称?
【问题讨论】:
标签: android
您好,有什么方法可以在安卓手机上获取来电的国家名称?
【问题讨论】:
标签: android
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("电话号码");
希望这对某人有所帮助
【讨论】: