我想要一个 Android 服务,它正在监听数据(我已经尝试过 TCP 和 UDP)以在数据到达时唤醒服务/手机。
目前,当 IP 数据到达时手机处于休眠状态, 数据丢失。这对安卓来说正常吗?我看到每天好几次睡 2 小时以上,睡着时睡 7 小时以上。
GCM 是否提供了在消息到达时唤醒服务/电话的解决方案。
我需要消息在从服务器发送后的几秒钟内显示出来。
难道这只能让 CPU 整天保持运行才能实现吗? GSM 调制解调器是否在数据到达时没有中断?
最佳答案
据我了解,如果您通过移动数据与服务器建立了出色的套接字连接,则该套接字连接在休眠模式下保持不变,传入的数据包会将手机从休眠状态唤醒模式(简要地)传递数据。
对于 WiFi 不也是如此(并且大概也不适用于有线以太网)。您需要持有一个 WakeLock
和一个 WifiLock
。
Does GCM provided a solution which wakes up a service/phone when a message arrives.
是的,但是...
I need messages to be displayed within a few seconds of them being sent from the server.
首先,GCM 没有服务级别保证。我不知道有任何解决方案可以做到这一点,包括您可能自己推出的任何解决方案(例如 MQTT)。
其次,您不知道设备是否能够接收任何此类消息(GCM 或其他),因为设备可能已关闭、处于飞行模式等。
关于android - 如何在传入数据时唤醒 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16897387/