我試圖每隔2分鐘掃描一次wifi網絡。我正在使用該服務。在startscan()
打電話後,當手機處於「活動」或「正在使用」狀態時,我在6秒內獲得SCAN_RESULTS_AVAILABLE_ACTION
。所以我可以定期掃描wifis。但是在某個時間(10分鐘)電話沒有被任何人觸動後,startscan()停止「工作」並且僅在10分鐘獲得結果之後。有人經歷過這個?startscan()在手機進入閒置狀態10分鐘後出現結果
1
A
回答
3
根據this我找到了解決方法 - 這是因爲the Wifi sleep policy。 你永遠不能設定你的無線設備進入這個睡覺:
Settings.System.putInt(getContentResolver(),
Settings.System.WIFI_SLEEP_POLICY,
Settings.System.WIFI_SLEEP_POLICY_NEVER);
可以肯定,你在AndroidManifest.xml
文件添加此權限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
掃描週期將是5-15s - 和這是自動的 - 你不需要撥打startscan()
。有關Android掃描過程的更多信息,請參閱here。
編輯:
這也許是更好的解決方案,如果您只想掃描熱點:
WIFI_MODE_SCAN_ONLY
- 它可以通過激活:
WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiLock wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_SCAN_ONLY , "MyWifiLock");
if(!wifiLock.isHeld()){
wifiLock.acquire();
}
不要忘記將其釋放,更多關於WifiLock
here
還定義了這個權限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
EDIT2這個工程,以及:
您可以啓用,並定期停用WiFi:
WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(wm.isWifiEnabled() == false) {
wm.setWifiEnabled(true);
}
然後掃描你的廣播接收器獲得包含WIFI_STATE_ENABLED
額外
相關問題
- 1. 手機進入空閒狀態時,後臺服務會停止
- 2. 如何檢查手機是否處於閒置狀態或手機是否處於閒置狀態?
- 3. 如何在asp.net中10分鐘後自動註銷我的網站,在我的網站處於閒置狀態?
- 4. 檢查系統空閒和使系統進入註銷狀態5分鐘後(如果沒有人使用)
- 5. 我如何在PHP如果閒置10分鐘,使用會話註銷用戶
- 6. Wifi只是進入空閒狀態
- 7. Grails的:(:10分鐘例如)如果會話是空閒有時
- 8. 10分鐘寫入進度PowerShell
- 9. 每5分鐘執行一次PHP cron,但在15分鐘後放入一個函數進入休眠狀態
- 10. 如何在每5分鐘10分鐘的閒置狀態之後給予管理員重新登錄管理員面板的救濟?
- 11. 如何防止Hudson自動進入關機模式或閒置狀態?
- 12. 如何防止Windows進入閒置狀態?
- 13. 後臺代理進程在windows phone 7中進入空閒狀態
- 14. Beaglebone黑色(Debian Image 2014-05-14)10分鐘後進入休眠
- 15. 爲什麼後臺任務在10分鐘後結束
- 16. 10分鐘後動作ASP.NET
- 17. 應用程序凍結10-15分鐘後未發出任何事件 - [Inactive]狀態 - iOS
- 18. Lamport時鐘和狀態機
- 19. 在Labview中實現分層狀態機
- 20. Android:如何檢測手機何時處於活動狀態並閒置?
- 21. Pentaho的表輸入步驟進入空閒狀態
- 22. 輸入對話框在Applescript中處於「空閒」狀態時重新出現
- 23. ASP.NET MVC - 閒置數分鐘後刪除會話數據
- 24. 閒置20-30分鐘後Azure AD超時 - 如何避免它?
- 25. 當手機進入睡眠狀態時,Handler.sendMessageDelayed()是否工作?
- 26. As3 - 如何讓手機進入睡眠狀態?
- 27. 當手機進入睡眠狀態時,OnCreate調用
- 28. UINavigationBar出現在狀態欄下20分
- 29. 如果用戶保持空閒10分鐘,就會終止Zend會話
- 30. 如何計算系統空閒時間並讓機器進入休眠狀態?
+1漂亮的動作後 - 看到我對'getScanResults問題();'[這裏](http://stackoverflow.com/questions/16137268/wifimanager-getscanresults-clarifications-automatic-scans-sleep-etc)。另外 - 假設您啓用無線功能,然後您想在掃描後重新啓用它 - 如果用戶在掃描時啓用了它(如果您不應該禁用它),該怎麼辦?有什麼方法可以知道嗎? – 2013-04-21 23:29:40