【发布时间】:2021-04-29 19:50:49
【问题描述】:
我已经在原生 Android 应用程序中实现了 VoIP 呼叫,但我们发现了一个我遇到的错误。如果有帮助的话,我会使用 Twilio 进行 VoIP 通话。
如果我从我们的应用发出拨出 VoIP 电话,通话结束后如果我将应用置于后台并收到通知,通知的音量大约是我打电话之前的一半。这不仅是来自我的应用程序的通知,而且其他应用程序也会受到影响。如果我将我的应用从应用历史记录中滑出,使其不再在后台运行,则通知会返回以正确音量播放。
当我接到来电时不会发生这种情况,即使我已经验证相同的代码会断开呼叫连接,无论是来电还是去电。
我已经验证,当通知进来时,设备的通知音量仍然使用 AudioManager 的getStreamVolume(AudioManager.STREAM_NOTIFICATION) API 一直调高。
由于似乎所有应用程序都受到了影响,而不仅仅是我自己的应用程序,我想我可以放心地假设问题不是播放通知声音的代码。我在想可能与 VoIP 通话有关的某些东西没有被正确释放,并且操作系统本身正在以较低的音量播放音调,因为它仍然认为我们正在通话,但我找不到任何证据.
我已确认我的调用对象 Connection 正在调用 onDisconnect() 和 destroy()。
我的ConnectionService 也被销毁了。
根据TelephonyManager,通知时的通话状态不是CALL_STATE_OFFHOOK。
您还能想到什么会导致通知以降低的音量播放吗?
【问题讨论】:
-
我也看到了这个问题。你有没有找到任何解决方案。我怀疑它是从听筒而不是扬声器中播放的,因此它要安静得多。通话后扬声器状态有问题(或者至少这是我的怀疑)
-
这也是我在寻找答案的 SO 帖子:stackoverflow.com/questions/68168193/…
-
我还没解决
标签: android android-notifications android-audiomanager voip-android android-connectionservice