我有一个 Android 应用程序,它每晚都会醒来并与我们的服务器同步一些数据。如果设备在一段时间不使用(或屏幕关闭)后将 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) 是必要的,因为它在睡眠时仍处于启用状态。但我还是这样做了,没有任何坏处。但是reconnect总是返回false,意味着它无法重新连接wifi。当然,dumpsys 仍然显示 runState 已停止。
有人可以帮我解决这个问题吗?唤醒 Wifi 并获得有效连接的正确程序是什么?
提前致谢!