【发布时间】:2012-03-10 22:14:52
【问题描述】:
我的 Android 应用程序会定期在 WiFi LAN 上发送和接收 UDP 广播消息。显示屏打开时,一切正常,所有消息都正确发送和接收。但是,当显示器进入睡眠状态时,应用程序会停止接收 UDP 广播消息(但仍会发送它们)。
获取 WiFiLock(以及多播锁定)似乎没有任何区别,我的 wifi 睡眠策略设置为 WIFI_SLEEP_POLICY_NEVER。
这是 Android 2.3.3 和 2.3.5(三星 Galaxy SII 手机)上的问题,但在运行 cyanogen mod 和 android 2.3.7 的旧 HTC Hero 上不是问题。
有没有其他人遇到过这个问题并找到了解决方案?
【问题讨论】:
-
你在哪里设置你的UDPSocket?在 Activity 或 Service 中?
-
服务内部。我们也在一个 Activity 中对其进行了测试,没有任何区别。
-
您从
InputStream读取到“-1”字节,表示流已结束? -
不,
DatagramChannel上的receive函数不会返回(它被阻止)。一旦设备进入睡眠状态,数据包就会停止到达。 -
如何让 UDP 在三星 Galaxy 上运行?我有这个问题:stackoverflow.com/questions/11358552/…
标签: android android-wifi android-networking