毎晩目を覚まし、一部のデータをサーバーと同期する 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 が Stopped であることを示しています。
誰かがこの問題について私を助けてくれますか? Wifi を起動して接続を確立するための正しい手順は何ですか?
前もって感謝します!