監聽iPhone的通話狀態之---CoreTelephony.framework


近期在做一個網絡電話會議,需要判斷手機的通話狀態,通過在網上查找資料找到一個蘋果私有框架,下面簡單介紹如何使用:

1,要在項目中添加CoreTelephony.framework這個框架,怎么添加如下圖:

點擊“+”,添加即可;

2,在你需要用到該功能的class中,導入如下兩個頭文件

#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

3,使用代碼如下:

    CTCallCenter *center = [[CTCallCenter alloc] init];
    center.callEventHandler = ^(CTCall *call){
        //block回調
        NSLog(@"----->>>>Call State : %@",[call description]);
        
        if (call.callState == CTCallStateDisconnected){
            NSLog(@"Call has been disconnected---掛斷"); 
        }else if (call.callState == CTCallStateConnected){
            NSLog(@"Call has just been connected---通話中");
        }else if(call.callState == CTCallStateIncoming){
            NSLog(@"Call is incoming---來電中(未接起)");
        }else if (call.callState ==CTCallStateDialing){
            NSLog(@"call is dialing");
        }else{
            NSLog(@"Nothing is done");
        }
        
    };
進行初始化完后,就可以測試啦。給被測試的手機打電話,就會執行^(CTCall *call)回調中的代碼,通過[call description]可以看出手機通話的各種狀態。

特別注意,這是iOS的私有API,不能上線AppStore會被拒;而且在項目中定義全局屬性變量(@property (nonatomic,retain)CTCallCenter * center;)編譯也不會通過!!!!

希望對大家有用,哈哈哈!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM