三星Galaxy Tab中的唤醒锁
我正在开发一个应用程序,我需要在后台发送和接收数据包。但我发现当屏幕关闭时,cpu和网络也被禁用。所以我在Android Developers上发现,如果屏幕熄灭,我应该使用唤醒锁定和WiFi锁定让CPU继续工作。此解决方案适用于LG Optimus One等其他设备,但不适用于Samsung Galaxy Tab。有了这个设备,当屏幕关闭时,我不能再收到数据包(UDP),并且当按下电源按钮重新启用屏幕时,我重新开始接收数据包。 在我的代码我呼吁:三星Galaxy Tab中的唤醒锁
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_W AKE_LOCK, "TAG");
然后
wakeLock.acquire();
我认为这是一个三星的错误,但我不知道这一点,如果有人可以给我一些暗示我会很感激。
P.S.我需要一些编程帮助...我已经知道,如果我修改一些手动设置以避免关闭屏幕,这将起作用。但我正在开发一个应用程序,我需要代码!
你应该使用PARTIAL_WAKE_LOCK
你的情况。
我不知道为什么SCREEN_DIM_WAKE_LOCK
是不够的(没有找到任何证明这一点的文档),但PARTIAL_WAKE_LOCK
在类似的情况下工作得很好。
作为另一种选择,您可以使用WifiLock
。但是你需要聪明点,因为你的网络连接可能是2G或3G,而不是Wi-Fi。所以当你实际使用3G/2G /等时,你不应该持有Wi-Fi锁。
您可能还想检查高级WIFI设置。 在首选项 - WIFI设置中,您可以点击菜单键,点击高级图标,然后检查WIFI睡眠策略的值。其中一个选项是“屏幕关闭时”。
在这个首选项中,我选中的选项是“从不”。另外我需要一个编程答案,因为我正在开发一个应用程序。 – flyhalf8610 2011-05-20 09:43:28
你有没有试过Galaxy Tab?因为我试过这个,但是当屏幕关闭时,我只能发送和不接收。PARTIAL_WAKE_LOCK应该保持CPU活着,但在这种情况下,似乎当屏幕关闭这不起作用。 – flyhalf8610 2011-05-20 09:37:45
是的,它适用于Galaxy Tab(我刚刚重新检查)。你为什么认为这是Galaxy Tab特有的? – inazaruk 2011-05-20 10:03:50
因为我正在测试其他设备(LG Optimus One),它确实有效!此外,我正在检查,但与PARTIAL_WAKE_LOCK udp接收不能通过无线网络时,屏幕关闭..我认为这是一个三星的错误。像省电功能。 – flyhalf8610 2011-05-20 10:13:12