android - 如何在手机处于深度 sleep 状态时在 android + pjsip 上接听电话

标签 android tcp sip pjsip

我正在尝试在 Android 上基于 PJSIP 构建 voip 应用程序。我决定使用 TCP 进行连接以使连接持久。应用程序现在有后台服务(相同的进程),负责与 SIP 服务器的所有交互。 TCP 保持 Activity 超时设置为 1 分钟(仅用于测试目的)。一切正常,直到手机进入深度 sleep 模式。从日志中我看到电话仍然发送 TCP KA,但间隔为 4 分钟(为什么???)。但主要问题是,如果我尝试从另一部电话调用这部电话,电话会一直休眠并跳过所有 INVITE 消息。感谢任何帮助。

最佳答案

当 Android 设备进入深度 sleep 时,CPU 会降低速度,几乎所有操作系统服务都会暂停。参见示例:

如果不是这种情况,操作系统和大多数其他组件仍会运行,这会极快地耗尽电池电量,并且大多数用户会卸载您的应用。

为了接收传入消息(如邀请),建议使用 GCM .在此,您需要实现一个服务器部分,该部分实质上是在客户端设备处于休眠状态时处理客户端的职责。

关于android - 如何在手机处于深度 sleep 状态时在 android + pjsip 上接听电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320717/

相关文章:

c - 用 C 编写一个简单的 voip 应用程序

android.graphics.Picture 未在 API 14+ 中绘制

Android 库与外部 jar

ssl - socat - 如何监听非 ssl TCP 并转发到 ssl TCP 端点?

Java EOFException 服务器/客户端 TCP 应用程序

node.js - 通过长时间运行的后台工作防止 HTTP 请求超时

sip - Asterisk 直接媒体和 NAT

c++ - osip2 编译代码块错误

android - 如何从 Google Assistant 发出局域网 HTTP 请求?

c# - GCM 服务器在 C# 中向 android 推送通知