CallKit 忽略 proximityMonitoringEnabled 上设置的值

CallKit ignore the value set on proximityMonitoringEnabled

我有一个使用通话工具包的 voip 应用程序。当通话开始时,我启用了接近监视器。

[UIDevice currentDevice].proximityMonitoringEnabled = YES;

添加视频流后,我禁用了接近监视器。问题是当我将 phone 靠近耳朵时屏幕仍然变黑,即使 proximityMonitoringEnabled 设置为 NO。

请注意,如果我禁用呼叫套件,接近监视器会按预期工作。
一件更奇怪的事情是,如果我从我的代码中删除 proximityMonitoringEnabled 并启用呼叫套件,当我得到时屏幕变黑我的 phone 靠近我的耳朵,在通话过程中。
我在 iPhone 7 iOS 11.0.3.

上遇到这个问题

您无法更改此行为,视频通话仍被视为通话,因此距离传感器始终处于打开状态。这是预期的行为,甚至我的 Android phone 在环聊视频通话中也是如此。

您可以在使用 AVAudioSession 通话期间使用 disable/enable 近距离监控。要禁用接近监控设置模式 AVAudioSessionModeVideoChat,要启用它请使用 AVAudioSessionModeVoiceChat。请注意,这些模式仅适用于 AVAudioSessionCategoryPlayAndRecord.

P.S。我认为这不重要,但仅使用 AVAudioSessionCategoryOptions.rawValue == 0

进行了测试