我尝试使用以下代码获取运营商名称(使用CoreTelephony):
CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", [carrier carrierName]);它返回"Carrier“。如果我进入iPhone设置,我的运营商名称在那里是正确的。我手机上的iOS是v4.2.1。
我做错了什么?
发布于 2012-01-06 20:55:05
你真的得到了字符串"Carrier“或者是字符串空的吗?文档中写道:
如果符合以下任一条件,则此属性的值为nil:
设备处于飞行模式。设备中没有SIM卡。该设备不在手机服务范围内。
我打赌模拟器里也是空的。
无论如何,你应该检查mobileNetworkCode,,因为名称很少是正确的(至少在欧洲,操作员经常来来往往地更改他们的名称)。
发布于 2014-05-17 19:20:02
通过这个,你可以得到移动网络代码,移动国家代码。从这些值中,您可以指定哪个sim名称是this。
CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
NSString *mobileCountryCode = carrier.mobileCountryCode;
NSString *carrierName = carrier.carrierName;
NSString *isoCountryCode = carrier.isoCountryCode;
NSString *mobileNetworkCode = carrier.mobileNetworkCode;您可以为此创建web服务,以指定此参数所属的网络的运营商名称。这些参数可以从该wikipedia中唯一标识。
例如,我的国家代码是"410",我的运营商网络是"06“,它正确地识别了我的运营商名称。
我也被同样的问题卡住了,现在解决了
https://stackoverflow.com/questions/6055835
复制相似问题