2013-10-06 34 views
0

我只需要有關Android上位置的粗略數據,所以在獲取它時主要考慮的是保持電池電量。我認爲這個代碼:Android地理位置管理器,粗略的數據和電池消耗

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 60 * 1000, 1000, this); 

它是正確的戰略?或者是更好地檢查一下,比如每10分鐘尋找一個新的位置並禁用監聽器,這似乎更接近Google網站上提出的代碼,儘管對我來說不太合邏輯?

回答

1

而不是提供提供者名稱使用criteria來獲取提供者。並且,使用標準來設置您的要求。

Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
criteria.setAltitudeRequired(false); 
criteria.setBearingRequired(false); 
criteria.setCostAllowed(true); 
criteria.setPowerRequirement(Criteria.POWER_LOW); 
final String bestProvider = manager.getBestProvider(criteria, true); 

然後終於,

locationManager.requestLocationUpdates(bestProvider, 0,1000, this); 

另外,您可以爲單一位置更新或禁用監聽器,只要你有任務

+0

OK完成請求,這是非常有用的,但它給了其他信息而不是我問過的問題 - 如果您始終需要數據,從不停用監聽器會更好嗎?還是每隔10分鐘更換一次? –

+0

設備上的每個芯片都需要時間進行初始化。如果請求之間的差距很長'removeUpdates'絕對是個好主意 – minhaz

+0

我想我的問題並不完美,我編輯過(因此第一個參數現在是10 * 60 * 1000)。這樣做還是禁用偵聽器會更好? –