获取 GPS 位置 消耗电池

Getting GPS location Consumes battery

我正在做一个 android 项目,我必须每 2 分钟获取一次用户的当前位置,我们使用的代码是

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;以米为单位

问题是我们能够正确获取位置,但是电池开始消耗得更快,有没有其他方法我们可以获取位置并且它也不会消耗太多电池。

Gps 比 wifi 消耗更多的电池。您可以 request location updates using Criteria 与 LocationManager 或者您可以使用 FusedLocationProvider api 如果没有 Google 播放服务不是问题。 FLP 使用 Wifi、Gps 和卡尔曼滤波器来提高定位精度。您可以测试 LocationManager 和 FLP 的准确性和电池消耗。我在户外从 LocationManager Gps 和 FLP 获得高达 4m 的精度(更好的设备可能会获得更好的结果)。 LocationManager wifi 精度较低,没有速度、高度信息。