android - 如何在 Android 上重新连接当前处于 sleep 模式的 WiFi

标签 android wifi

我有一个 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/

相关文章:

安卓应用自卸载

Android WifiLock 在 Android 上无法正常工作

ios - 如何在 iOS + Swift 中关闭我的应用程序的互联网访问

android - 谷歌地图不显示任何内容

java - Java 中用于 C# 构造的加密/解密等价物

Android ffmpeg0.8 不能用 android ndk5 和 cygwin 编译器编译

Android Wifi Direct 软 AP 配置

android - Google maps Android API获取wifi位置

android - 通过发送 Intent 启动 Androids WiFi-Manager?

android - 使用 mockito 库的 android 应用程序的 Jacoco 代码覆盖率