在我的应用程序中使用 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 minDistance
是 minimum distance between location updates, in meters
并且您已将其设置为 0。这意味着设备将 持续 获取用户位置。
我开发应用程序,它在服务中获取位置并将其发送到服务器。 后台服务每 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 minDistance
是 minimum distance between location updates, in meters
并且您已将其设置为 0。这意味着设备将 持续 获取用户位置。