CoreTelephony 框架在 iPhone 中返回 404 作为 MCC(移动国家代码)

Posted

技术标签:

【中文标题】CoreTelephony 框架在 iPhone 中返回 404 作为 MCC(移动国家代码)【英文标题】:CoreTelephony framework returns 404 as MCC (mobile country code) in iPhone 【发布时间】:2015-09-07 07:15:12 【问题描述】:

我正在使用下面的代码 sn-ps 来找出用户 iPhone 的 MCC(移动国家代码)。运营商名称、iSO 代码和 MNC 等详细信息都很好,但 MCC 始终是 404,而不是 +01(或美国)或 +91(印度)。

    CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init];
    CTCarrier *carrier = [networkInfo subscriberCellularProvider];


// Get carrier name
NSString *carrierName = [carrier carrierName];
if (carrierName != nil)
    NSLog(@"Carrier: %@", carrierName);

// Get mobile country code
NSString *mcc = [carrier mobileCountryCode];
if (mcc != nil)
    NSLog(@"Mobile Country Code (MCC): %@", mcc);

// Get mobile network code
NSString *mnc = [carrier mobileNetworkCode];

if (mnc != nil)
    NSLog(@"Mobile Network Code (MNC): %@", mnc);
NSString *code = [carrier isoCountryCode];

NSLog(@"isoCountryCode (iso): %@", code);

我的手机中有一张可以正常使用的 SIM 卡,并且我的手机已解锁。 我在这里做错了什么?

【问题讨论】:

MCC 不是 e.164 国家代码。这是一个 e.212 代码 - 404 是印度。 itu.int/itudoc/itu-t/ob-lists/icc/e212_685.pdf 【参考方案1】:

MCC 不是您所期望的电话的国家/地区前缀,而是 ITU-T E.212 建议书“移动国家或地理区域代码列表”中定义的移动国家/地区代码。

在您的情况下,404 是 - 印度。 您可以通过以下方式查看列表:http://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.212A-2010-PDF-E.pdf

【讨论】:

感谢您提供的信息,直到现在我才知道这一点。有没有办法可以在 ios 中获取国家/地区前缀。这会很有帮助。 我不知道(那些会通过 App Store 审查的)

以上是关于CoreTelephony 框架在 iPhone 中返回 404 作为 MCC(移动国家代码)的主要内容,如果未能解决你的问题,请参考以下文章

拦截电话 - iPhone(连接 CoreTelephony 的正确方法)

iOS 15 崩溃 CoreTelephony

CoreTelephony eSIM 功能在设备上不起作用

无法检索运营商名称

Xcode 10 似乎打破了 com.apple.commcenter.coretelephony.xpc

与名为 com.apple.commcenter.coretelephony.xpc 的服务的连接已失效