【发布时间】:2011-04-02 06:24:26
【问题描述】:
这是我收听 GPS 位置更新的方式(使用 LocationManager 和 LocationListener):
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
listener = new MyLocationistener(); // LocationListener
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
30000, // milliseconds (minTime)
20, // meters (minDistance)
listener );
但我想动态调整LocationManager#requestLocationUpdates 使用的minTime 和minDistance 参数。我的目标是根据几项使用政策来节省电池,即:
- 如果用户没有移动,则增加 minTime 以获取位置更新
- 如果用户移动速度非常快,请增加 minDistance
- 如果用户在室内(没有 GPS 覆盖范围),请同时增加两者
- 如果电池电量过低,请同时增加两者
- ...(任何其他启发式)
我想知道:
- 这真的是节省电池寿命的好主意吗?
- 如何进行这种调整?如果有唯一的选择,我可以再次致电
LocationManager#removeUpdates和LocationManager#requestLocationUpdates。 - 您知道实现这种自适应算法的任何想法或示例代码吗?
编辑:该应用程序是一个跟踪系统,用于了解人们的位置,以便将任务分配给离给定位置最近的人。实际上电池几乎不能持续 8 小时,所以我想增加它。
【问题讨论】:
-
有趣的问题虽然我帮不上什么忙。我认为节省电池是个好主意。我倾向于说你建议的解决方案是唯一的,但我不是位置 API 方面的专家,所以我会让其他人说话。
-
[我在我的应用程序中使用了相同的代码,但它没有返回任何值,想知道是否有任何人可以帮助我...][1] [1]:@ 987654321@
-
删除和添加,就像这样:stackoverflow.com/questions/5385094/…