标签: callkit

如何禁用在历史记录中保存CallKit呼叫

我在我的Objective-C应用程序中使用CallKit。

我的问题是CallKit将来电保存在电话应用程序的历史记录中。有没有办法禁用此功能?

谢谢。

privacy objective-c ios callkit

1
推荐指数
1
解决办法
938
查看次数

CallKit - 如何将CXCallController带到前面

我正在创建一个VOIP应用程序.大多数逻辑类似于Raywenderlich教程.

我的问题是,在接受呼叫后,CXCallController它不在应用程序之上,而是在"任务管理器"旁边:

在此输入图像描述

问题是,一旦你接受了呼叫,CXCallController它不是最顶层的控制器,而是实际的应用程序.所以你不能说这个电话正在发生.并执行有关呼叫的操作 - 例如挂断,保持,静音,您将不得不通过任务管理器打开CXCallController.用户不太友好.

CXCallController用户接听电话后如何将其置于前面?

在用户接听电话后调用的提供者代理:

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {

    guard let call = callManager.getCall(with: action.callUUID) else {
        action.fail()
        return
    }

    configureAudioSession()
    self.incommingCall = call
    action.fulfill()
}
Run Code Online (Sandbox Code Playgroud)

创建音频会话后的回调:

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {

    incommingCall?.answerCall(with: audioSession) { success in

        if success {
            self.incommingCall?.startAudio()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用TokBox VOIP服务启动调用逻辑:

func answerCall(with audioSession: AVAudioSession, completion: ((_ success: Bool) -> Void)?) {

    OTAudioDeviceManager.setAudioDevice(OTDefaultAudioDevice.sharedInstance(with: audioSession))
    if session == …
Run Code Online (Sandbox Code Playgroud)

tokbox swift callkit

0
推荐指数
1
解决办法
894
查看次数

未调用 reportNewIncomingCall 完成

reportNewIncomingCall完成参数不会被调用,这意味着我没有得到任何反馈,为什么我的VOIP应用程序不显示呼叫接收警报。

    func reportIncomingCall(uuid: UUID, handle: String, hasVideo: Bool = false, completion: ((NSError?) -> Void)?) {
    // 1.
    let update = CXCallUpdate()
    update.remoteHandle = CXHandle(type: .phoneNumber, value: handle)
    update.hasVideo = hasVideo

    // 2.
    provider.reportNewIncomingCall(with: uuid, update: update) { error in
        if error == nil {
            // 3.
            let call = Call(uuid: uuid, handle: handle)
            self.callManager.add(call: call)
        }

        // 4.
        completion?(error as? NSError)
    }
}
Run Code Online (Sandbox Code Playgroud)

我是从Ray Wanderlich 教程中获取的

我尽可能准确地复制了代码。它适用于教程,但不适用于我的项目。

voip swift callkit

0
推荐指数
1
解决办法
803
查看次数

如何在Objective C中使用CallKit

我正在完成WWDC CallKit会话,并且对它的概念很满意,但是不知道如何开始。

另外,我遵循了Apple Developers的CallKit示例代码,即SpeakerBox。但这是在Swift中。

需要建议!

提前致谢

xcode objective-c ios callkit

-2
推荐指数
1
解决办法
1990
查看次数

标签 统计

callkit ×4

ios ×2

objective-c ×2

swift ×2

privacy ×1

tokbox ×1

voip ×1

xcode ×1