【问题标题】:Saving power with location services by detecting user movement using sensors通过使用传感器检测用户移动,通过定位服务节省电力
【发布时间】:2015-07-16 13:44:35
【问题描述】:

我正在开发一个跟踪用户行踪的应用程序。为了节省电池,我想实现一个空闲区域,使位置管理器在 GPS 位置上的拉动频率降低(甚至停止)。一旦用户再次开始移动(通过加速度计和/或显着移动检测到),定位服务将使用默认间隔。

一种方法是将空闲区域定义为LocationManager::requestLocationUpdates 中的minDistance 参数,但这里的其他用户suggests that it does not have any impact on the battery draindocumentation 表示位置管理器很难使用它来节省电池电量标准:

但是,位置提供商更难节省电力 使用 minDistance 参数,所以 minTime 应该是主要工具 以节省电池寿命。

Google 还建议使用significant motion sensor 来检测用户位置何时发生变化:

在高层,显着运动检测器用于减少 位置确定的功耗。当本地化 算法检测到设备是静态的,他们可以切换到低 电源模式,他们依靠显着的运动来唤醒设备 当用户改变位置时启动。

这是否意味着位置管理器会使用默认存在的重要运动传感器,或者我是否需要激活或实施某些东西以使位置服务使用它?

那么加速度计呢?我的大部分问题在于使用加速度计检测用户何时开始移动是否会节省任何电量,因为使用加速度计将是另一个需要电源和回调处理的传感器。一些加速度计传感器are listed as low-powered 由 Google 提供,而另一些则不是(包括重要的运动传感器)。

是否可以通过让 GPS 进入睡眠状态,然后使用传感器检测用户移动而再次唤醒 GPS 来节省电池电量?

【问题讨论】:

  • 嘿马丁,你有没有找到解决位置更新省电的任何解决方案...
  • 不。在我为这篇文章做了研究之后,我一直没有在这方面工作。我已经向某些人发送了几封电子邮件,但这些天似乎每个人都在度假。当/如果我得出结论时,我将发布答案。感谢您的跟进!
  • 是的,似乎每个人都在为这个特定主题度假;);)
  • @Martin - 对此有何更新?
  • 是否有可能以其他方式检测运动(以及从睡眠中唤醒)?我有没有“显着运动”传感器的联发科设备(根据传感器检测到的 apk),但是,它内置了在运动时打开屏幕的功能。怎么可能?

标签: android gps geolocation location battery-saver


【解决方案1】:

LocationManager::requestLocationUpdates 通过使用高级方法setSmallestDisplacement() 使用significant motion sensor 示例:

mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(20*1000);
mLocationRequest.setFastestInterval(10*1000);
mLocationRequest.setSmallestDisplacement(10F); //meters

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多