iOS監(jiān)聽App內(nèi)部撥打電話后的狀態(tài)改變

1.0首先知道怎么去撥打電話?

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];

2.0 iOS10后此方法被遺棄,并且打電話的彈窗出現(xiàn)時有延遲,優(yōu)化下

NSString *callPhone = [NSString stringWithFormat:@"telprompt://%@", content_mobile];

NSComparisonResult compare = [[UIDevice currentDevice].systemVersion compare:@"10.0"];

if (compare == NSOrderedDescending || compare == NSOrderedSame) { // 大于等于10.0系統(tǒng)使用此openURL方法

? ? ? ? ? ? [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone] options:@{} completionHandler:nil];

} else {

? ? ? ? ? ? [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];

}

3.0 好了 現(xiàn)在開始監(jiān)聽狀態(tài),網(wǎng)上有不少類似的,這里十分感謝這位大神的分享,來個傳送門以表敬意?IOS 系統(tǒng)打電話事件的監(jiān)聽與狀態(tài)獲取 - CSDN博客?但是我發(fā)現(xiàn)這個方法中很多都是被遺棄了提示讓使用?CXCallObserver,于是我就試用了下

4.0 百度一番,并未找到OC關(guān)于CXCallObserver的用法,不過找了swift大神的一份此類代碼。來個傳送門以表敬意Swift3.0撥打電話,獲取通話狀態(tài)(接通,掛斷...) - CSDN博客,然后我根據(jù)swift的代碼改寫成OC,經(jīng)測試成功。首先引用頭文件、遵守CXCallObserverDelegate協(xié)議,并聲明變量

#import <CallKit/CallKit.h>

@property(nonatomic,strong)CXCallObserver *callObserver;

然后就是實例化變量

self.callObserver = [[CXCallObserver alloc] init];

[self.callObserver setDelegate:self queue:dispatch_get_main_queue()];

最后實現(xiàn)代理方法

-(void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call{

? ? ? if (call.isOutgoing) {

? ? ? ? ? ? ?DLog(@"電話播出");

? ? ? ? ? ? ? ? ? ? ? ? ?if (call.hasConnected) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DLog(@"電話接通");

? ? ? ? ? ? ? ? ? ? ? ? ?}else if (call.hasEnded){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DLog(@"電話掛斷");

? ? ? ? ? ? ? ? ? ? ? ?}else if (call.isOnHold){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DLog(@"無人接聽掛斷"); }

? ? ? ?}else{

? ? ? ? ? ? ? ? ? DLog(@"other error");

? ? ?}

}

到此結(jié)束,如有疑問或者文章有錯誤,歡迎指正

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容