我构建了一个 VoIP 呼叫应用程序,它与服务器保持持久连接以监听任何来电。我实现了一个后台服务来做到这一点。
但自从 Oreo 以来,由于引入了后台执行限制 https://developer.android.com/about/versions/oreo/background.html
查了一下论坛,发现有人建议
-
将Service转换为JobService并让android调度它
这样做,我的应用程序在停止时将无法接听电话
-
在前台服务中运行您的操作
对于某些用户来说,在通知栏中看到不断的通知很烦人。因此,上述选项对我修复 Oreo 代码不起作用。
WhatsApp 如何在 Android(Oreo 及以上版本)中接收来电(VOIP)后台执行限制 https://developer.android.com/about/versions/oreo/background.html?
我假设您正在使用 SIP 建立连接并发起呼叫。如果没有不断重新发送 REGISTER 的服务,应用程序在服务器发送 INVITE 时不会收到 INVITE。
此问题的解决方法是所谓的“推送通知策略”。它的工作原理如下,当服务器发送 INVITE 时,它还会向您的应用程序发送 FCM 通知,这会唤醒您的应用程序,然后将 REGISTER 发送到您的服务器,作为回报,服务器分叉对您的应用程序的调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)