【问题标题】:Find Country code by using Mobile Number Android使用手机号码 Android 查找国家代码
【发布时间】:2016-08-25 05:27:41
【问题描述】:

有什么方法可以从我的手机号码中找到国家代码。基本上,我正在为一个聊天应用程序工作,我需要使用手机号码找到国家代码。有可能吗?

例如:

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

现在我只有我的号码了。我不知道国家代码。我不知道是哪个国家。是否可以在 Android 中以编程方式实现这一点?

【问题讨论】:

  • 用国家名称找到县代码..
  • 请阅读我提到的问题。 “我不知道是哪个国家”
  • "我不知道国家代码。我不知道是哪个国家。" - 那你不能确定。仅搜索该号码即可为我提供位于美国马萨诸塞州伍斯特市的位置,这显然不是您想要的。
  • 是的,如果我使用这个号码,那么它将显示不同的国家。

标签: android telephonymanager


【解决方案1】:

如果您已经拥有特定格式的完整手机号码,例如+91-99xxxxxxxx 并且想获取国家代码=IN,那么这里是一个解决方案的参考。

在你的 gradle 中使用一个库。

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

【讨论】:

    【解决方案2】:

    使用TelephonyManager.getSimCountryIso()

    如果您想将其映射到数字,请参阅how to get country phone prefix from iso

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 2013-12-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多