2012-01-17 48 views
2

我需要知道用戶理論上是否可以撥打電話。獲取iPhone運營商接待狀態? (不是互聯網)

有誰知道當用戶的iPhone能夠連接到運營商網絡時如何「返回真實」(使用Cocoa iOS)? (不是互聯網)

或者如何以編程方式告訴「用戶有多少接收條」?

+0

重複:在蘋果開發者文檔的URL

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. }; 

更多信息http://stackoverflow.com/questions/2959567/iphone-signal-strength – 2012-01-17 10:20:27

回答

3

鏈接你對CoreTelephony.framework應用

您可以檢查CTCarrier對象,看看你是否已經得到有效的結果(!=無)需要與手機的連接部分物業供應商。

例如,下面還有那覈對的CTCarriermobileNetworkCode屬性代碼剪斷。如果設備連接到電話運營商(您希望的任務,用戶可以撥打電話,包含在上述狀態中),則該屬性爲!=零。 http://developer.apple.com/library/IOs/#documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.html

+2

大量的現場測試後,我發現, NSString * mnc = [carrier mobileNetworkCode];當我的iPhone在狀態欄中顯示「沒有接收」時,仍然會返回一個區號....我將與netInfo.subscriberCellularProviderDidUpdateNotifier一起去看看會發生什麼。 – 2012-04-29 09:45:44