我有一个安卓应用程序,每天晚上都会醒来,并与我们的服务器同步一些数据。如果设备在某段时间没有使用(或屏幕关闭)后将WiFi置于睡眠模式,我需要一种方法唤醒WiFi并进行同步,然后让它返回睡眠模式。所以我发现:
如果wifi处于睡眠模式,我可以看到(通过dumpsys)wifi仍处于启用状态,但runstate已停止。所以在我的代码中,我会做一些
WifiManager wManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
wManager.setWifiEnabled(true);
boolean connect = wManager.reconnect();
Log.d(TAG, "connect " + connect);
我不认为setwifienabled(true)是必要的,因为它在睡眠中仍处于启用状态。但不管怎样,我做了这件事,没有什么害处。但是重新连接总是返回false,这意味着它无法重新连接wifi。当然,dumpsys仍然显示runstate已停止。
有人能帮我解决这个问题吗?唤醒WiFi并建立正常连接的正确步骤是什么?
提前谢谢!
最佳答案
通常,当设备处于睡眠模式时,真正唤醒它的唯一方法是获取唤醒锁…有几种类型的尾迹锁,你可以阅读它here。
希望这有帮助…