我有一個Android應用程序,每晚都會喚醒並與我們的服務器同步一些數據。如果設備在一段時間沒有使用(或關閉屏幕)後將WiFi置於睡眠模式,我需要喚醒Wifi並執行同步,然後讓其返回睡眠模式。所以這裏是我發現的:如何重新連接Android上當前處於睡眠模式的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(真)是必要的,因爲它仍然是在睡眠啓用。但是我反正做了,沒有任何傷害。但重新連接總是返回false,這意味着它不能重新連接wifi。當然,dumpsys仍然顯示runState已停止。
有人可以幫助我解決這個問題嗎?什麼是正確的程序來喚醒Wifi並獲得工作連接?
在此先感謝!
使用喚醒鎖! – TacB0sS 2013-03-22 20:36:29
謝謝!那就是訣竅。你介意創建一個答案,以便我可以接受它嗎? – Safecoder 2013-03-22 21:01:54
你是否設法解決這個問題?在我的IntentService中,我獲得了部分喚醒鎖,但WiFi仍然保持睡眠狀態 – 2016-05-31 18:00:14