1
我對Android的項目,我必須得到用戶的當前位置信息,每2分鐘,我們正在使用的代碼工作是獲取GPS定位消耗電池
try {
DpGPSEnabled = DpLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
DpNetworkEnabled = DpLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (DpIsGpsProvider && DpGPSEnabled) {
DpLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,DpMIN_TIME_BW_UPDATES,DpMIN_DISTANCE_CHANGE_FOR_UPDATES,DpLocationListener);
} else if (!DpGPSEnabled) {
DpLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,DpMIN_TIME_BW_UPDATES,DpMIN_DISTANCE_CHANGE_FOR_UPDATES,DpLocationListener);
DpGenUtil.setLocationPostion(DpLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER));
}
if (DpGPSEnabled && DpNetworkEnabled) {
DgProvider = "GPS+Network";
} else if (DpNetworkEnabled) {
DgProvider = "Network";
} else if (DpGPSEnabled) {
DgProvider = "GPS";
} else {
DgProvider = "Not Selected";
}
} catch (Exception ex) {
}
其中DpMIN_TIME_BW_UPDATES = 1000 * 60 * 2; 2分鐘 和DpMIN_DISTANCE_CHANGE_FOR_UPDATES = 200;以米爲單位
問題是我們能夠正確獲取位置,但電池開始消耗得更快,有沒有其他方法可以獲得位置,也不會消耗太多電量。
好的我會檢查一下,謝謝你的回覆 – sunilkarkala
我寫了一個測試類,用Wifi,GP和FLP測試LocationManager。我還檢查了衛星計數的GpsStatusListener狀態,以及衛星的信號功率和固定和信噪比,以測試位置apis。您也可以這樣做,並將電池消耗與不同數量的可用衛星進行比較。 – Thracian
我看了一下那個API,現在它已被 FusedLocationProviderClient棄用,但功能保持不變,我會研究這一點。 – sunilkarkala