我想要一个正在侦听数据的 Android 服务(我尝试过 TCP 和 UDP)以在数据到达时唤醒服务/电话。
目前,当 IP 数据到达并且该数据丢失时,电话会保持睡眠状态。这对安卓来说正常吗?我每天几次看到 2 小时以上的睡眠,当我睡着时,我会睡 7 小时以上。
GCM 是否提供了一种解决方案,可以在消息到达时唤醒服务/电话。
我需要在从服务器发送消息后的几秒钟内显示消息。
这只能通过让 CPU 全天运行来实现吗?数据到达时GSM调制解调器没有中断吗?
我想要一个正在侦听数据的 Android 服务(我尝试过 TCP 和 UDP)以在数据到达时唤醒服务/电话。
目前,当 IP 数据到达并且该数据丢失时,电话会保持睡眠状态。这对安卓来说正常吗?我每天几次看到 2 小时以上的睡眠,当我睡着时,我会睡 7 小时以上。
GCM 是否提供了一种解决方案,可以在消息到达时唤醒服务/电话。
我需要在从服务器发送消息后的几秒钟内显示消息。
这只能通过让 CPU 全天运行来实现吗?数据到达时GSM调制解调器没有中断吗?
据我了解,如果您通过移动数据与服务器建立了出色的套接字连接,则该套接字连接会在睡眠模式下保持,并且传入的数据包会将手机从睡眠模式(短暂)唤醒以传递数据。
WiFi并非如此(可能也不适用于硬连线以太网)。你需要持有 aWakeLock
和 a WifiLock
。
GCM 是否提供了一种解决方案,可以在消息到达时唤醒服务/电话。
对,但是...
我需要在从服务器发送消息后的几秒钟内显示消息。
首先,GCM 没有服务级别保证。我不知道有任何解决方案,包括您可能自己推出的任何解决方案(例如,MQTT)。
其次,您不知道设备是否能够接收任何此类消息(GCM 或其他),因为设备可能已关闭、处于飞行模式等。