我已经在原生 Android 应用程序中实现了 VoIP 呼叫,但我们发现了一个我被困住的错误。如果有帮助的话,我将使用 Twilio 进行 VoIP 通话。
如果我从我们的应用程序拨出VoIP 电话,在通话结束后,如果我将应用程序置于后台并收到通知,通知的音量大约是我拨打电话之前的一半。这不仅是来自我的应用程序的通知,而且其他应用程序也受到影响。如果我将我的应用程序从应用程序历史记录中滑出,使其不再在后台运行,则通知将返回以正确音量播放。
当我接到来电时不会发生这种情况,即使我已经验证相同的代码会断开呼叫连接,无论它是传入还是传出。
我已经验证,当通知进来时,设备的通知音量仍然使用 AudioManager 的getStreamVolume(AudioManager.STREAM_NOTIFICATION)
API 一直调高。
由于似乎所有应用程序都受到了影响,而不仅仅是我自己的应用程序,我想我可以放心地假设问题不是播放通知声音的代码。我在想也许与 VoIP 通话有关的某些东西没有被正确释放,并且操作系统本身正在以较低的音量播放音调,因为它仍然认为我们正在通话,但我找不到任何证据.
我已经确认我Connection
的调用对象是调用onDisconnect()
, 和destroy()
。我ConnectionService
的也被破坏了。通知时的通话状态不是CALL_STATE_OFFHOOK
根据TelephonyManager
.
您还能想到其他什么会导致通知以降低的音量播放吗?