我尝试使用以下代码获取运营商名称(使用CoreTelephony):

CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", [carrier carrierName]);


它返回“载波”。如果我转到iPhone设置,那里的运营商名称是正确的。我在手机上的iOS版本为4.2.1。

我究竟做错了什么?

最佳答案

您是否真正获得字符串“ Carrier”或该字符串为空?文档说:


  如果满足以下任一条件,则此属性的值为nil:
  
  设备处于飞行模式。设备中没有SIM卡。
  设备不在蜂窝服务范围内。


赌它在模拟器中也是空的。

无论如何,您应该检查mobileNetworkCode,因为名称很少正确(至少在欧洲,运营商来来往往地更改其名称)。

08-26 03:58