在Android中,UDP数据包在睡眠模式下未收到

时间:2013-08-05 08:58:08

标签: android udp

我已经实现了一个udp数据包接收线程,它监听UDP包的接收。屏幕打开时,它可以正常工作。按下电源按钮后,设备进入睡眠模式。之后它没有收到任何UDP数据包。并且仅在屏幕进入ON状态时才接收数据包。索尼Xperia Z平板电脑不是这种情况。无论屏幕ON或OFF状态如何,它始终接收UDP数据包。

我使用过PowerManager.PARTIAL_WAKE_LOCK来确保CPU在睡眠模式下运行。但是没有区别。我想知道是什么原因导致UDP数据包在睡眠模式下被阻止。请帮助我理解为什么UDP数据包在接收中被阻止以及谁阻止它?而且我也在寻找解决方案。

2 个答案:

答案 0 :(得分:1)

此主题处理问题:https://groups.google.com/forum/?fromgroups=#!topic/android-platform/OpbSdp9FTmA

基本上,解决方案是

  

获取PARTIAL_WAKE_LOCK,并在屏幕熄灭时陷阱。   然后禁用并重新启用wifi。这是因为过滤器   只有在屏幕熄灭时才会打开,所以开始使用   屏幕关闭将使其保持工作,直到屏幕再次关闭。

答案 1 :(得分:0)

尝试使用WiFi锁:

WifiLock wl =((WifiManager)getSystemService(Context.WIFI_SERVICE))。createWifiLock(WifiManager.WIFI_MODE_FULL,“wifi_lock”); wl.acquire();

...在这里做你的东西,完成后:

wl.release();