有没有办法从我的手机号码中找到国家/地区代码。基本上,我正在为聊天应用程序工作,我需要使用手机号码查找国家/地区代码。有可能吗?
例如:
My Country - India,
Country Code - +91,
My number - 9787248566
现在我只有我的号码。我不知道国家代码。我不知道它是哪个国家。是否可以通过编程方式在Android中实现此目的?
答案 0 :(得分:1)
使用TelephonyManager.getSimCountryIso()
。
如果您想将其映射到该号码,请参阅how to get country phone prefix from iso
答案 1 :(得分:0)
如果您已经具有特定格式的完整手机号码,例如 + 91-99xxxxxxxx ,并想获取国家/地区代码= IN ,那么这里是解决方案的参考。
在gradle中使用lib。
//Phone Utils lib.
implementation 'com.googlecode.libphonenumber:libphonenumber:7.0'
下面将帮助查找国家/地区代码和其他信息的代码。
PhoneNumberUtil utils = PhoneNumberUtil.getInstance();
try {
for (String region : utils.getSupportedRegions()) {
// Check whether it's a valid number.
boolean isValid = utils.isPossibleNumber(mobileNo, region);
if (isValid) {
Phonenumber.PhoneNumber number = util.parse(mobileNo, region);
// Check whether it's a valid number for the given region.
isValid = utils.isValidNumberForRegion(number, region);
if (isValid) {
Log.d("Region:" , region); // IN
Log.d("Phone Code", number.getCountryCode()); // 91
Log.d("Phone No.", number.getNationalNumber()); // 99xxxxxxxxxx
}
}
}
} catch (NumberParseException e) {
e.printStackTrace();
}