iOS Я не могу получить имя своего оператора - PullRequest
5 голосов
/ 15 ноября 2011

как объяснено здесь -> Программное обеспечение для получения имени оператора из iPhone

Я пытаюсь получить имя моего оператора, я использую этот код

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

но я получаю предупреждение о [carrier carrierName]: метод экземпляра '-carrierName' не найден

Я добавил и фреймворк coretelephony в мой проект, но когда я запускаю свое приложение, оно падает!

спасибо всем!

Ответы [ 3 ]

13 голосов
/ 15 ноября 2011

Вы явно импортировали CTCarrier?

#import <CoreTelephony/CTCarrier.h>
1 голос
/ 29 мая 2012

У меня тоже такая же проблема, и попробуйте войти по устройству:

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

имя-объекта-носителя в стеке выполнения ".....", на самом деле этодолжно быть "台湾 大哥大"

это похоже на проблему кодирования строки, потому что я не могу ее получить?Понятия не имею ...

Вы можете попробовать SIM-карту другого оператора.

0 голосов
/ 15 ноября 2011

Попробуйте

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

.

...