获取GPS位置消耗电池

时间:2017-10-18 07:41:17

标签: android gps 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;以米为单位

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

1 个答案:

答案 0 :(得分:1)

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

相关问题