使用Android手机号码查找国家/地区代码

时间:2016-08-25 05:27:42

标签: android telephonymanager

有没有办法从我的手机号码中找到国家/地区代码。基本上,我正在为聊天应用程序工作,我需要使用手机号码查找国家/地区代码。有可能吗?

例如:

My Country - India,
Country Code - +91,
My number - 9787248566

现在我只有我的号码。我不知道国家代码。我不知道它是哪个国家。是否可以通过编程方式在Android中实现此目的?

2 个答案:

答案 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();
}