在我的应用程序中使用 GPS、Wi-Fi 时如何节省电量?

How to save battery, when use GPS, Wi-Fi in my app?

我开发应用程序,它在服务中获取位置并将其发送到服务器。 后台服务每 5 分钟获取一次位置(例如)。 当使用 GPS 和 Wi-Fi 时,电池会很快耗尽...... 那么,如何才能节省电池寿命?

提前感谢您的帮助!

小问题: 我是否可以在下面的代码中每 5 分钟请求一次位置更新? 它是否正确地将 requestLocationUpdates 与 NETWORK_PROVIDER 一起使用,然后再与 GPS_PROVIDER 一起使用?那是必要的,当 GPS 找不到信号,但 Wi-Fi 找到信号并给出坐标时。 我这样做:

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30000, 0, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30000, 0, locationListener);

首先,您必须意识到,您需要使用的这些功能可能是对功率要求最高的功能之一。我整理了一些可以帮助您减少功耗的东西:

首先看看你是否真的需要精度GPS_PROVIDER。如果不是选择NETWORK_PROVIDER.

据我所知,您通过设置 NETWORK_PROVIDER 和 GPS_PROVIDER 将 requestLocationUpdates 回调方法设置为调用 2 次。您不需要同时使用它们。另外看看你传递给 requestLocationUpdates 方法的参数:

`public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)`

根据 documentation minDistanceminimum distance between location updates, in meters 并且您已将其设置为 0。这意味着设备将 持续 获取用户位置。