簡體   English   中英

檢查電話或 Skype 通話是否有效 iOS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM