gpt4 book ai didi

iphone - iOS4中检测通话状态

转载 作者:行者123 更新时间:2023-12-03 18:29:37 26 4
gpt4 key购买 nike

我想知道是否有可能检测用户是否正在从当前处于后台的应用程序进行通话。

或者,如果通话是从我的应用发起的,则在通话结束时收到通知。

或者,更重要的是 - 是否有可能检测哪个应用程序位于前台?
我不相信这是可能的,但我必须尝试......;-)

任何信息将不胜感激。

谢谢。

最佳答案

CTCallCenter中,有一个方法callEventHandler,您可以传递一个在调用事件发生时将被调用的 block 。在此 block 中,您将传递一个 CTCall 对象,并可以获得 callState。因此,您可以在调用发起或结束时收到通知,并进行适当的处​​理。您无法得知哪个应用程序发起了调用,但如果您在调用时设置了 ivar,则可以知道是您的应用程序发出了调用。

例如:

CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call){
if (call.callState == CTCallStateDisconnected)
{
//handle disconnect
}
};

编辑:重新阅读您的问题,您希望在暂停期间发生这些事件,对吗?我认为这是不可能的。

来自docs :

If your application is active when a call event takes place, the system dispatches the event to your handler immediately. However, call events can also take place while your application is suspended. While it is suspended, your application does not receive call events. When your application resumes the active state, it receives a single call event for each call that changed state—no matter how many state changes the call experienced while your application was suspended. The single call event sent to your handler, upon your application returning to the active state, describes the call’s state at that time.

关于iphone - iOS4中检测通话状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3319805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com