Sip Android VoIP应用程序:部分唤醒锁定与忽略电池优化(doze白名单)

Sip Android VoIP应用程序:部分唤醒锁定与忽略电池优化(doze白名单),sip,wakelock,android-wake-lock,android-doze,portsip,Sip,Wakelock,Android Wake Lock,Android Doze,Portsip,我正在使用SIP协议开发一个IP语音(VoIP)应用程序,该协议要求应用程序监听传入呼叫。这意味着应用程序不能休眠或死亡 对于旧代码,这样做的方法似乎是获取一个 现在,安卓6.0及更高版本推出了新功能。如果你不想让你的应用进入待机状态,建议你通过请求许可将其“白名单”。这是专为VoIP应用程序根据 这两件不同的事情似乎是相关的。我不确定它们之间的关系,它们是否相互干扰,我是否应该使用一个或另一个或两者,以及是否有其他考虑因素。请解释一下 此外,我不允许在此项目上使用推送通知。如果您有其他关于节省

我正在使用SIP协议开发一个IP语音(VoIP)应用程序,该协议要求应用程序监听传入呼叫。这意味着应用程序不能休眠或死亡

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

现在,安卓6.0及更高版本推出了新功能。如果你不想让你的应用进入待机状态,建议你通过请求许可将其“白名单”。这是专为VoIP应用程序根据

这两件不同的事情似乎是相关的。我不确定它们之间的关系,它们是否相互干扰,我是否应该使用一个或另一个或两者,以及是否有其他考虑因素。请解释一下


此外,我不允许在此项目上使用推送通知。如果您有其他关于节省电池的建议,请告诉我。

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

你应该一次只使用其中一个,你可以用很难的方法来处理没有sip的voip呼叫,然后你可以处理来自服务器的推送通知的传入呼叫,但我不认为有人能胜任,除非你需要顶级产品


这方面没有解决办法,事实上,唯一的好办法就是自己完成这项繁重的工作,因为用户普遍使用电池优化器/改进的打盹应用程序,这样你可能会被杀。

因此,如果我理解你的意思,我应该使用其中一个,而不是两个?但Doze白名单从Android 6.0(API级别23)开始。所以我应该只对较旧的操作系统版本使用部分唤醒锁定,而对23级使用Doze白名单?在这个项目中,我必须使用SIP,不能使用推送通知。是的,对所有版本和API>=23请求白名单使用部分波锁。我没有及时点击你的答案,所以奖金就消失了。愚蠢的赏金规则不允许我给你全额赏金。我不知道他们为什么决定那样做。我希望我现在就可以给你全额奖金。别担心@Emmanuel我的回答不是很好tho,只是建议我如何处理android>=M的功能