iOS如何查找用户电话号码的国家代码?

Posted

技术标签:

【中文标题】iOS如何查找用户电话号码的国家代码?【英文标题】:iOS how to find country code of the user's phone number? 【发布时间】:2014-08-02 13:55:59 【问题描述】:

我有一个应用需要找出用户所拥有电话号码的国家代码。我的理解是我不能只获取用户的电话号码,但是,如果我有一个美国电话号码,有没有办法获取国家代码+1?

我找到了多个答案,声称使用核心电话可以获得国家/地区代码“+1”,但我尝试了一些,但没有一个有效。

我试过了:

CTTelephonyNetworkInfo *network_Info = [CTTelephonyNetworkInfo new];
CTCarrier *carrier = network_Info.subscriberCellularProvider;
NSString *mnc = [carrier mobileNetworkCode];
NSString *mcc = [carrier mobileCountryCode];    
NSLog(@"country code is: %@, mnc: %@, mcc: %@", carrier.mobileCountryCode, mnc, mcc);

哪个打印:

"country code is: 310, mnc: 410, mcc: 310"

因此,对于美国号码,我希望获得 +1。

有没有办法做到这一点?

编辑: 通过进一步搜索,我发现了这个:

How to map MCC + MNC to users phone country code in ios objective-C without using Location info?

它可能会奏效,但我正在寻找一种更正式的方式来做到这一点。

【问题讨论】:

没有用于此的 API。找到一个数据库,将其包含在应用程序中并在那里查找此信息。 说起来容易做起来难:en.wikipedia.org/wiki/List_of_country_calling_codes 【参考方案1】:

您可以通过以下方式获取国家/地区代码:

NSString *cc = [carrier isoCountryCode];

这将为您提供美国设备的 US。您可以通过this 上提供的 JSON 数据从国家代码映射到国家电话代码。

【讨论】:

这行得通。注意:它不能在模拟器上运行,因为它不在特定的“运营商”上运行,因此运营商将为 nil 并且无法返回 isoCountryCode。不错的 API!

以上是关于iOS如何查找用户电话号码的国家代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用位置信息的情况下将 MCC + MNC 映射到 iOS Objective-C 中的用户电话国家代码?

如何通过Phonegap查找具有iOS格式的联系人电话号码?

Facebook iOS SDK:检索用户的电话号码和国家

iOS上国家代码的电话号码格式

Android 和 IOS - 如何敲掉国家代码和电话号码前的 0

从电话号码中查找国家代码