我开发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);
答案 0 :(得分:1)
首先,您必须意识到您需要使用的这些功能可能是功耗最高的功能之一。我编写了一些可能有助于降低功耗的事情:
首先看看你是否真的需要GPS_PROVIDER的准确度。如果没有选择NETWORK_PROVIDER。
通过设置NETWORK_PROVIDER和GPS_PROVIDER,我看到您将requestLocationUpdates
回调方法设置为被调用2次。您不需要同时使用它们。另外,请查看您在requestLocationUpdates
方法上传递的参数:
`public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)`
根据documentation,minDistance
为minimum distance between location updates, in meters
并且您已将其设置为0.这意味着设备将持续获取用户位置。