接電話,打電話等電話狀態的檢測:TelephoyCheck
1、導入CoreTelephony.framework
2、引入兩個頭文件
1. import <CoreTelephony/CTCallCenter.h>
import <CoreTelephony/CTCall.h></pre>
3、定義變量(警告,最好不要在viewDidLoad中定義局部變量,最好是這種全局變量,否則因為變量被釋放等無法接收來電話等的消息)
<h2>@property(strong,nonatomic) CTCallCenter *callCenter; </h2>4、創建并接收回調等
_callCenter = [[CTCallCenter alloc] init];_callCenter.callEventHandler = ^(CTCall* call) {
if ([call.callState isEqualToString:CTCallStateDisconnected]) { NSLog(@"掛斷了電話咯 Call has been disconnected"); } else if ([call.callState isEqualToString:CTCallStateConnected]) { NSLog(@"電話通了 Call has just been connected"); } else if([call.callState isEqualToString:CTCallStateIncoming]) { NSLog(@"來電話了 Call is incoming"); // 用來做暫停錄音之類的。 } else if ([call.callState isEqualToString:CTCallStateDialing]) { NSLog(@" 正在播出電話 call is dialing"); } else { NSLog(@"嘛都沒做 Nothing is done"); }
};</pre>
備注,接電話打印的流程:
1.Call is incoming
- Call has just been connected 3.Call has been disconnected</pre>
打電話的流程:
1.call is dialing 2.Call has just been connected 3.Call has been disconnected這個播出電話的測試我在其他項目測試過,不過這里到后臺好像就被掛起了,因為也沒什么定位之類的讓他多存留一會,然后我在app delegate中的applicationDidEnterBackground里加了一段代碼,保證了能測試出來。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!