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格式的联系人电话号码?