我有一个问题(但不是真的)与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)调用的视图之前没有调用任何内容.
解决方法
对于传出电话我一直在努力.对于拨出电话,请确保在远程方应答后呼叫此方法:
[self.provider reportOutgoingCallWithUUID:currentCall.uuid connectedAtDate:[NSDate date]];
如果你不这样做,那么呼叫就会从CallKit的角度“连接”,我发现其他呼叫的本地呼入UI不会为另一个呼叫提供“发送到语音邮件”和“保持和接受”选项.是“连接”.
今天我一直在努力解决这个问题,直到我发现这一部分.我也在打电话:
[self.provider reportOutgoingCallWithUUID:currentCall.uuid startedConnectingAtDate:[NSDate date]];
从内部:
>(void)提供者:(CXProvider *)提供者performStartCallAction:(CXStartCallAction *)动作