Получить статус приема iPhone iPhone? (не интернет) - PullRequest
2 голосов
/ 17 января 2012

Мне нужно знать, может ли пользователь теоретически сделать телефонный звонок.

Кто-нибудь знает, как «вернуть истину» (используя Cocoa iOS), когда iPhone пользователя может подключиться к сети оператора? (не интернет)

Или как программно сказать "сколько тактов приема" у пользователя?

1 Ответ

3 голосов
/ 17 января 2012

Свяжите ваше приложение с CoreTelephony.framework

Вы можете проверить объект CTCarrier и посмотреть, есть ли у вас действительный результат (! = Nil) для некоторого свойства, которое требует соединения с провайдером телефона.

Например, ниже приведен фрагмент кода, который проверяет свойство mobileNetworkCode CTCarrier . Это свойство имеет значение! = Nil, если-и-только-если устройство подключено к провайдеру телефона (желаемое задание, пользователь может позвонить, входит в состояние, описанное выше).

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

//The value for this property is nil if any of the following apply:
//  - The device is in Airplane mode.
//  - There is no SIM card in the device.
//  - The device is outside of cellular service range.
NSString *mnc = [carrier mobileNetworkCode]; 

if(!mnc) {
    //if we're here, than probably we're disconnected from the Phone Provider
}

netInfo.subscriberCellularProviderDidUpdateNotifier = ^ (CTCarrier * carrier) {
    //this block is executed each time we've a change to the state of the carrier
    //be sure to check the carrier object, in order to see is we're connected to a
    //phone provider.

};

Более подробная информация на URL документации Apple для разработчиков: http://developer.apple.com/library/IOs/#documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...