Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,在睡眠模式下未接收到UDP数据包_Android_Udp - Fatal编程技术网

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

在Android中,在睡眠模式下未接收到UDP数据包,android,udp,Android,Udp,我已经实现了一个udp数据包接收器线程,它监听udp数据包的接收。当屏幕打开时,它工作正常。当按下电源按钮时,设备进入睡眠模式。之后,它不会接收任何UDP数据包。只有当屏幕处于打开状态时,它才会接收数据包。索尼Xperia Z平板电脑并非如此。无论屏幕打开或关闭状态如何,它始终接收UDP数据包 我使用了PowerManager.PARTIAL_WAKE_LOCK来确保CPU在睡眠模式下运行。但这没有什么区别。我想知道是什么原因导致UDP数据包在睡眠模式下被阻塞。请帮助我理解为什么UDP数据包在接

我已经实现了一个udp数据包接收器线程,它监听udp数据包的接收。当屏幕打开时,它工作正常。当按下电源按钮时,设备进入睡眠模式。之后,它不会接收任何UDP数据包。只有当屏幕处于打开状态时,它才会接收数据包。索尼Xperia Z平板电脑并非如此。无论屏幕打开或关闭状态如何,它始终接收UDP数据包

我使用了PowerManager.PARTIAL_WAKE_LOCK来确保CPU在睡眠模式下运行。但这没有什么区别。我想知道是什么原因导致UDP数据包在睡眠模式下被阻塞。请帮助我理解为什么UDP数据包在接收时被阻止,是谁阻止了它?我也在寻找解决办法

尝试使用WiFi锁定:

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

。。。在这里完成您的工作,完成后:


wl.release()

此线程处理以下问题:

基本上,解决办法是

获取部分唤醒锁定,并在屏幕关闭时捕获。 然后禁用并重新启用wifi。这是因为过滤器 只有在屏幕关闭时才会打开,因此使用 screen off(屏幕关闭)将保持其工作,直到屏幕再次关闭