iOS我无法获得我的运营商名称

时间:2011-11-15 15:21:24

标签: ios core-telephony carrier

如此处所述 - > Retrieving Carrier Name from iPhone Programmatically

我正在尝试获取我的运营商名称,我正在使用此代码

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

但我在[carrier carrierName]收到警告:未找到实例方法'-carrierName'

我已经将框架coretelephony添​​加到我的项目中,但是当我执行我的应用程序时它会崩溃!

感谢所有人!

3 个答案:

答案 0 :(得分:13)

您是否明确导入CTCarrier?

#import <CoreTelephony/CTCarrier.h>

答案 1 :(得分:1)

我也遇到同样的问题,并尝试按设备登录:

NSLog(@"carrierName = %@",carrier.carrierName);
NSLog(@"mobileCountryCode = %@",carrier.mobileCountryCode);
NSLog(@"mobileNetworkCode = %@",carrier.mobileNetworkCode);
NSLog(@"isoCountryCode = %@",carrier.isoCountryCode);
NSLog(@"allowVOIP = %d",carrier.allowsVOIP);

结果:

2012-05-29 11:48:31.466 carrierTest [357:707] mobileCountryCode = 466

2012-05-29 11:48:31.469 carrierTest [357:707] mobileNetworkCode = 97

2012-05-29 11:48:31.470 carrierTest [357:707] isoCountryCode = tw

2012-05-29 11:48:31.472 carrierTest [357:707] allowVOIP = 1

对象carrierName在运行堆栈中是“.....”,实际上它应该是“台湾大哥大”

它看起来像字符串编码问题导致我无法得到它?我不知道......

您可以尝试其他运营商SIM卡。

答案 2 :(得分:0)

尝试

NSLog(@"Carrier Name: %@", carrier.carrierName);

代替。