[英]iOS: How to launch call applications like native phone app, skype, lin phone etc from my application
[英]Check is phone call or Skype call is active iOS
我有使用 AVFoundation 的相機視圖,如果電話或 Skype 通話處於活動狀態,那么我們無法使用相機。
我如何檢查 AVFoundation 是否無法打開然后我需要在不使用相機的情況下打開其他視圖。
如果我會檢查這個-
BOOL isPlayingWithOthers = [[AVAudioSession sharedInstance] isOtherAudioPlaying];
那么當任何其他應用程序播放音頻時它不會打開。
有什么建議 ?
CTCallCenter
對象有一個currentCalls
屬性,它是當前調用的NSSet
。 如果有呼叫,則 currentCalls 屬性應為 != nil。
如果您想知道是否有任何調用實際上已連接,則必須遍歷當前調用並檢查callState
以確定它是否為CTCallStateConnected
。
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
-(bool)isOnPhoneCall {
/*
Returns YES if the user is currently on a phone call
*/
CTCallCenter *callCenter = [[[CTCallCenter alloc] init] autorelease];
for (CTCall *call in callCenter.currentCalls) {
if (call.callState == CTCallStateConnected) {
return YES;
}
}
return NO;
}
我在 Swift 中使用這種方法,Tarun 的回答幫助了我。
導入 CallKit
func isOnPhoneCall() -> Bool {
/*
Returns true if the user is currently on a phone call
*/
for call in CXCallObserver().calls {
if call.hasEnded == false {
return true
}
}
return false
}
您的應用程序委托將收到-applicationDidResignActive
消息,您的應用程序可以偵聽UIApplicationDidResignActiveNotification
。 當您的應用程序被呼叫中斷時以及在應用程序被中斷的其他情況下,例如屏幕鎖定或用戶按下鎖定按鈕時,將收到這些信息。
有關如何在響應中斷中處理中斷的更多詳細信息。
另請參閱有關如何檢測 iphone 應用程序中的呼叫中斷的堆棧溢出帖子?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.