我正在研究需要定期掃描附近Wi-Fi接入點的Android應用程序。目前掃描每2-3分鐘進行一次,這需要註冊一個BroadcastReceiver
來捕獲掃描結果,調用WifiManager
的startScan
方法並處理結果(在我的情況下也需要網絡調用)。這個循環消耗了大量的能量,我想通過爲應用實施智能電源策略來提高功耗。使用傳感器數據的Android智能電源管理
除了僅在「繁忙時間」進行掃描(例如,在晚上停止循環),我正在考慮通過SensorManager
使用加速度計來檢測設備是靜止的(放置在桌子上)還是在運動(例如,在步行時在用戶的口袋中)。然後,通過確定設備是否在移動,我可以調整掃描頻率(靜止時減小,當設備運動時增加)。
我對此事的幾個問題:
1)將定期跟蹤加速計數據更耗電比運行掃描循環中每3-5分鐘高效?跟蹤加速度計真正花費多少功率?
2)如何確定設備是靜止還是運動?我在網上看到很多關於檢測抖動和傾斜的問題,但沒有關於自然運動檢測的大量信息。另外,我應該多頻繁地採樣傳感器?
你可以嘗試getLastKnownLocation(){我認爲這是方法名稱關閉我的頭}查詢GPS,看看設備是否'固定' - 雖然比加速度計會給你一個固定的差異.. 。 –