2011-10-31 66 views
2

我一直在基於位置的應用程序,一切除了位置實施,這是核心點確定。Android的最佳定位監聽器實現

我知道的位置是非常昂貴的,但我不能考慮到電池消耗處理這個問題。

這是我目前的算法:

步驟1:創建1分鐘的時間間隔報警經理。

步驟2:當警報被觸發時,開始位置的聽者

if(settings.getBoolean("use_gps", false)) 
     manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener); 
    manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,listener); 
    manager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 0, 0,listener); 

步驟3:等待15秒的最大值用於位置

步驟4:當接收到一個位置,停止位置監聽器。

其中一個問題是由於:0秒鐘位置精度爲0米時,CPU使用率大幅增加 - 當報警觸發時,CPU使用率增加45%,報警時間爲0-15秒。

但是,當我看到我的應用程序的電池使用,電池的使用增加,1-2小時後,不符合預期:電池的使用僅約4% - 5%。

第二個問題是當用戶想通過GPS獲得自己的位置。由於通過GPS獲取位置需要很長時間,與從網絡提供商獲取位置相比,我無法通過GPS獲取位置。

我已經實現了很多不同的方法後實現了這個算法。

我找的人誰也通過與低CPU使用率GPS成功地實施了定期的位置獲取建議。

回答

2

一起使用接收器和服務。爲此,您可以在this link中找到完整的樣本。裏面有一個聽衆。聽衆可以在你的活動中使用,注意到一個新的位置已經爲你準備好了。此外還有一個帶有AlarmManager的服務。