ios – 进入蜂窝电话时保持呼叫套件呼叫

我有一个问题(但不是真的)与callkit.

我在我的应用程序中实现了callkit,它运行良好.我可以再次拨打我的应用程序和callkit,向我提供End& Accept,Decline或Hold& Accept选项.如果我正在进行蜂窝电话(gsm)呼叫并且我在我的应用上接听电话也是如此.但当我在应用程序调用(在callkit上)并获得蜂窝(gsm)调用时,我只获得2个选项:拒绝或结束和接受.

知道为什么吗?或者我如何获得所有3个选项?

static var providerConfiguration: CXProviderConfiguration {

    var providerConfiguration: CXProviderConfiguration
    providerConfiguration = CXProviderConfiguration(localizedname: "app name")

    providerConfiguration.supportsVideo = false
    providerConfiguration.maximumCallsPerCallGroup = 1
    providerConfiguration.maximumCallGroups = 3
    providerConfiguration.supportedHandleTypes = [.phoneNumber]
    return providerConfiguration
}

我已实施:

providerDidReset,CXStartCallAction,CXAnswerCallAction,CXEndCallAction,CXSetHeldCallAction,CXSetMutedCallAction,timedOutPerforming action,didActivate audioSession,didDeactivate audioSession.

在我的app委托中,我有检查useractivity的功能.我在所有函数中都放置了断点,但在显示传入蜂窝(gsm)调用的视图之前没有调用任何内容.

我用Google搜索但无法找到解决方案.据我所知,callkit工作正常.

解决方法

对于传出电话我一直在努力.对于拨出电话,请确保在远程方应答后呼叫此方法

[self.provider reportOutgoingCallWithUUID:currentCall.uuid connectedAtDate:[NSDate date]];

如果你不这样做,那么呼叫就会从CallKit的角度“连接”,我发现其他呼叫的本地呼入UI不会为另一个呼叫提供“发送到语音邮件”和“保持和接受”选项.是“连接”.

今天我一直在努力解决这个问题,直到我发现这一部分.我也在打电话:

[self.provider reportOutgoingCallWithUUID:currentCall.uuid startedConnectingAtDate:[NSDate date]];

从内部:

>(void)提供者:(CXProvider *)提供者performStartCallAction:(CXStartCallAction *)动作

不确定这部分是否必要,但我这样做是因为这就是SpeakerBox演示的功能.有点,他们在回调中做到了……我只是马上做.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...