iOS如何检查当前是否正在通话中

问题描述 投票:24回答:4

我环顾四周,我所能找到的只是检查CTCallCenter的callState。但是,这是通过侦听事件来进行的-根据应用程序是否处于活动状态/暂停状态/继续运行,可以在不同时间引发事件。]

我需要的不是与其听事件,而是在电话接通时被告知,我想自己决定何时询问电话是否接通。

[使用案例:连接电话时-用户知道并且将始终单击应用程序图标,这将打开应用程序。目前,我只想运行一个快速功能来检查当前是否在通话中。

这甚至有可能吗?

我环顾四周,我所能找到的只是检查CTCallCenter的callState。但是,这是通过侦听事件来进行的-根据应用程序是否处于活动状态/已暂停/恢复...

iphone objective-c ios xcode phone-call
4个回答
25
投票

CTCallCenter对象具有currentCalls属性,它是当前调用的NSSet。如果有呼叫,则currentCalls属性应为!= nil。


27
投票
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

-(bool)isOnPhoneCall {
    /*

     Returns TRUE/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;
}

6
投票

感谢您的回答ThomasW。我以为我也会发布代码。


0
投票

我遇到了同样的问题,但是我认为从[[iOS 10

© www.soinside.com 2019 - 2024. All rights reserved.