2012-01-17 3 views
2

Мне нужно знать, может ли пользователь теоретически сделать телефонный звонок.Получить статус регистрации iPhone-носителя? (не интернет)

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

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

+0

Дублированный: http://stackoverflow.com/questions/2959567/iphone-signal-strength –

ответ

3

Link ваше приложение против CoreTelephony.framework

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

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

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. 

}; 

подробнее в компании Apple Developer Documentation URL: http://developer.apple.com/library/IOs/#documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html

+2

После много полевых испытаний, я обнаружил, что NSString * mnc = [carrier mobileNetworkCode]; по-прежнему возвращает код области, когда мой iPhone показывает «нет приема» в строке состояния .... Я пойду с netInfo.subscriberCellularProviderDidUpdateNotifier и посмотрю, что произойдет. –

 Смежные вопросы

  • Нет связанных вопросов^_^