使用手机号码 Android 查找国家代码
Posted
技术标签:
【中文标题】使用手机号码 Android 查找国家代码【英文标题】:Find Country code by using Mobile Number Android 【发布时间】:2016-08-25 05:27:41 【问题描述】:有什么方法可以从我的手机号码中找到国家代码。基本上,我正在为一个聊天应用程序工作,我需要使用手机号码找到国家代码。有可能吗?
例如:
My Country - India,
Country Code - +91,
My number - 9787248566
现在我只有我的号码了。我不知道国家代码。我不知道是哪个国家。是否可以在 android 中以编程方式实现这一点?
【问题讨论】:
用国家名称找到县代码.. ***.com/questions/5402253/… 请阅读我提到的问题。 “我不知道是哪个国家” "我不知道国家代码。我不知道是哪个国家。" - 那你不能确定。仅搜索该号码即可为我提供位于美国马萨诸塞州伍斯特市的位置,这显然不是您想要的。 是的,如果我使用这个号码,那么它将显示不同的国家。 【参考方案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
【讨论】:
以上是关于使用手机号码 Android 查找国家代码的主要内容,如果未能解决你的问题,请参考以下文章