3

我有一个 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 并获得有效连接的正确程序是什么?

提前致谢!

4

1 回答 1

0

通常,当设备处于睡眠模式时,真正唤醒它的唯一方法是获取唤醒锁......有几种类型的唤醒锁,你可以在这里阅读......

希望这可以帮助...

于 2013-03-23T21:11:57.253 回答