我有一个 Android 应用程序,它每晚醒来并与我们的服务器同步一些数据。如果设备在一段时间不使用(或屏幕关闭)后将 WiFi 置于 sleep 模式,我需要一种方法来唤醒 Wifi 并进行同步,然后让它返回 sleep 模式。所以这是我发现的:
如果 Wifi 处于 sleep 模式,我可以看到(通过 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) 不是必需的,因为它在 sleep 时仍处于启用状态。但我还是做了,没有坏处。但是reconnect总是返回false,意思就是无法重连wifi。当然,dumpsys 仍然显示 runState 已停止。
有人可以帮我解决这个问题吗?唤醒 Wifi 并获得有效连接的正确程序是什么?
提前致谢!
最佳答案
通常,当设备处于 sleep 模式时,真正唤醒它的唯一方法是获取唤醒锁……有几种类型的唤醒锁,您可以阅读相关内容 here ...
希望这有助于...
关于android - 如何在 Android 上重新连接当前处于 sleep 模式的 WiFi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15579404/