接電話,打電話等電話狀態的檢測:TelephoyCheck

jopen 8年前發布 | 16K 次閱讀 iOS開發 移動開發 TelephoyCheck

1、導入CoreTelephony.framework

2、引入兩個頭文件

1. import <CoreTelephony/CTCallCenter.h>

  1. 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

    1. 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里加了一段代碼,保證了能測試出來。

      項目主頁:http://www.baiduhome.net/lib/view/home/1449998312689

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!