我正在使用 SIP 协议开发 IP 语音 (VoIP) 应用程序,该协议要求应用程序监听来电。这意味着应用程序不能休眠或死亡。
对于旧代码,似乎这样做的方法是获取PARTIAL_WAKE_LOCK。
现在从 Android 6.0 及更高版本开始,有了新的Doze。建议,如果您不希望您的应用程序进入待机状态,您应该通过请求REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限将其“列入白名单”。根据文档,这是专门针对 VoIP 应用程序的。
这两个不同的东西似乎是相关的。我不确定它们是如何相关的,它们是否相互干扰,我是否应该使用其中一个或两个,以及是否有其他考虑。请解释。
另外,我不允许在这个项目上使用推送通知。如果您有其他节省电池的建议,请告诉我。