2011-10-24 61 views
6

我必須在大約一天的時間內使用GPS追蹤器構建應用程序。我意識到類似的問題,但我還沒有找到任何答案,我有一些問題。讓GPS服務保持活躍狀態​​並優化電池壽命

- 我需要每10分鐘進行一次GPS修復,因此我認爲最好的方法是啓動位置服務,獲得修復(或超時)並停止服務(使用removeUpdates())。我怎麼能每10分鐘運行一次這個循環的應用程序(或服務或其他),並確保只要有剩餘電量就會繼續運行(即使設備進入睡眠狀態,它應該每10分鐘喚醒一次以獲得修復程序)?使用AlarmManager是個好主意嗎?

- 我希望電池能夠持續一天這種方法嗎?

我檢查了mytracks,但GPS聽衆似乎總是打開,電池預計不會超過5小時。

我也檢查了CWAC Location Poller,但它在超時時只有removeUpdates(),並立即重啓監聽器。它也使用wakelock,而在我的情況下,我認爲AlarmManager可能是一個更好的主意。

任何幫助/建議,歡迎

回答

4

報警經理我用

Intent serviceIntent = new Intent(this, TrackerService.class); 
    mPendingIntent = PendingIntent.getService(this, 0, serviceIntent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

    alarmManager.cancel(mPendingIntent); 
    alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, 
       System.currentTimeMillis(), interval, mPendingIntent); 

在一個類似的應用程序用於獲取網絡位置

間隔是啓動服務

啓動服務,獲取位置和關閉

這間毫秒更加電池高效與積極服務遊逛等待報表

的代碼我張貼首先取消先前的警報,所以你不會超過1 :)

+0

好的,謝謝。我會嘗試並測試電池壽命。 – jul

0

您可以檢查出Passive Receiver 它會給你一個位置更新每當另一個設備的位置被更新 - 你是當場就與僅適用於2.2或更高版本

+2

我不能使用它,因爲如果沒有其他應用程序獲取位置更新,我什麼都得不到。 – jul

相關問題