我想知道你的设备什么时候离开你的家,但我不需要精确的GPS位置,也不需要高更新率(即如果我知道用户离开家后仅10分钟就出来了,那就没问题了已经100米了。)
两种解决方案中的哪一种应该使用更少的电池(两者都应该使用比普通GPS位置监听器更少的电池)?
PRIORITY_BALANCED_POWER_ACCURACY
第一个肯定是使用更节省电池的解决方案,我可以控制频率低。
第二个是更高级别的API,它正是我想要的,但我不知道它做了什么,看起来它会在用户处于地理围栏内时不断使用精美的GPS位置(记住我想减少电池使用情况)。
任何人都对电池使用情况有一些了解吗?
答案 0 :(得分:2)
这里的答案可能是各种各样的事情。 Location and battery Drain视频详细介绍了GPS& amp;位置芯片会耗尽设备中的电池电量。 (Battery Drain and Networking将详细介绍无线电芯片的工作原理。)
基本上,使用FusedLocationProvider可以缩小精度与功耗。基本上分辨率越低,电池消耗越少。
在了解更高功率检查之前,我建议将一组低功耗检查作为早期警告:
基本上,您希望最省电的排水选项最常运行,并且只有在您解决位置差异时才能使用最耗电量。
答案 1 :(得分:0)
文档中有一些提示,Google希望您将Geofencing(或新的Awareness API)用于您的用例。
第一种方法需要从LocationRequest和来自 https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest
活动应该强烈考虑在进入后台时删除所有位置请求(例如在onPause()处),或者至少将请求更换为更大的间隔和更低的质量。
这表明此API仅在您的应用程序处于活动状态时使用,因此称为“请求”术语。
Google很快意识到很多应用程序(包括他们自己的Google Now)正在请求在后台定位,并且他们希望以这样的方式对其进行改进,即可以汇集和共享请求,因此他们创建了Geofencing和最终意识API。
来自Fence API文档,
https://developers.google.com/awareness/overview#fences_and_snapshots
Fence API可让您的应用对用户的当前情况做出反应,并在满足上下文条件组合时提供通知。例如,“只要用户走路并插入耳机,就告诉我”。一旦注册了围栏,即使没有运行,Fence API也可以向您的应用发送回调。
因此,在您的用例中,如果您的应用未运行,则应该使用第二种方法。