如何删除IOS CallKit中的顶部栏?

时间:2017-07-26 08:01:28

标签: ios objective-c callkit

我在我的应用中使用callkitPushkit。使用callkit后我的应用程序在后台进行了一个红色视图显示在屏幕顶部,即使我已断开呼叫。

如何以编程方式删除此顶级视图。

这是问题的截图。 enter image description here

我正在断开电话。使用此链接

CallKit Call Dissconnect

4 个答案:

答案 0 :(得分:4)

如果您使用的是CallKit框架,则该栏应为绿色。红色通常用于表示没有CallKit框架实现的SIP呼叫。但是,如果您说通话已结束且栏仍然存在,则表示您未使用CallKit正确结束通话。这意味着它仍然表示活动的SIP呼叫。

当您UUID以及使用reportNewIncomingCallWithUUID举报传出来电时,您可以获得[[CXStartCallAction alloc] initWithCallUUID来电。在该方法中,您可以创建并传递UUID

NSUUID *callUUID = [NSUUID UUID];

你必须跟踪它!

答案 1 :(得分:2)

这不是问题。它是iOS的默认行为。

当您进行电话呼叫,监控后台位置,录制音频,视频通话(例如:Skype)时,您可以看到类似的行为。

答案 2 :(得分:0)

您的音频会话仍是一个重新编码会话(如播放和录制音频会话),这就是红色栏仍位于顶部的原因。向用户表明您的应用正在录制音频,就像以前的评论中提到的一样(正常的iOS行为)。如果要在通话结束后删除红色条,请将音频会话切换为非重新编码,例如环境音频会话。

答案 3 :(得分:0)

红色横幅表示AVAudioSession仍处于活动状态。使用CallKit的provider方法停用您的音频引擎

func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession)