Android VoIP应用程序:PARTIAL_WAKE_LOCK与忽略电池优化(打瞌睡白名单)

时间:2017-08-07 00:01:04

标签: sip wakelock android-wake-lock android-doze portsip

我正在使用SIP协议处理IP语音(VoIP)应用程序,该协议要求应用程序监听来电。这意味着应用程序不得睡觉或死亡。

对于旧代码,似乎这样做的方法是获取PARTIAL_WAKE_LOCK

现在从Android 6.0及更高版本开始,新的Doze。建议您,如果您不希望自己的应用进入待机状态,则应该将白名单"白名单"请求REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限。这是专门针对documentation的VoIP应用程序。

这两种不同的东西似乎是相关的。我不确定他们是如何相关的,如果他们互相干扰,如果我使用其中一个或两个 ,如果有其他注意事项。请解释一下。

此外,我不允许在此项目中使用推送通知。如果您有其他保存电池的建议,请告诉我。

1 个答案:

答案 0 :(得分:2)

在您的情况下,您应该要求白名单,就像您链接的documentation一样,它建议GCM可以与SIP协议冲突。 我会像典型的运行时权限一样处理这种情况。在你的应用程序的某个地方(在创建主屏幕时为ex)请求白名单以及你需要它的原因,如果他们不想只是禁用与接听电话相关的功能。

你应该一次只使用其中一个,你总是可以用硬盘的方式去处理voip电话而不用sip,那么你可以通过服务器的推送通知处理来电,但我不认为有人在除非你需要顶级产品,否则就是这样。

没有解决方法,确实唯一好办法是自己做繁重的工作,因为它在用户中很受欢迎,使用电池优化器/改进的打瞌睡应用程序,所以你可能会被杀死。