使用融合位置地理围栏时是不是需要请求位置更新?

Posted

技术标签:

【中文标题】使用融合位置地理围栏时是不是需要请求位置更新?【英文标题】:Do I need to request location updates when using Fused location Geofences?使用融合位置地理围栏时是否需要请求位置更新? 【发布时间】:2014-01-31 09:50:36 【问题描述】:

我已经使用the android Developers documentation.成功实现了位置地理围栏

我遇到的问题是地理围栏事件并不总是可靠的。有时它们会在我到达该位置时立即触发,有时它们需要几分钟(即使半径值很大),有时它们根本不会触发。

我还注意到,即使我启用了 GPS,该应用程序也没有使用 GPS 传感器来获取我的位置。

这是因为在没有请求更新的情况下,Fused Location 提供程序处于“被动”模式并依赖于其他应用程序的请求?我是否需要实施位置请求以及地理围栏?

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

不确定它是否完全回答了您的问题,但我正在开发实现地理围栏和位置请求的应用程序,这些是我的观察结果:

当应用程序处于活动状态并且我正在接收位置更新(位置已知)时,地理围栏行为准确 - 我几乎立即获得意图。

当应用处于非活动状态时,我观察到相同的行为 - 有时 Intent 是即时的,有时需要一段时间,有时需要太长时间。当然,当有其他应用程序时,f.e.谷歌地图,请求位置,意图再次,几乎是即时的。但是当不需要精确定位时,通常需要一段时间。总的噩梦是人们关闭了 wifi/移动数据并在建筑物之间移动。因为在里面,没有GPS,而且他们在外面呆的时间太少,手机通常不会唤醒......

所以,我想说这实际上是预期的行为。 (否则电池寿命会很糟糕)

【讨论】:

感谢您的回复。在我看来,更频繁的位置请求可能是解决此问题的方法。根据Google's IO 13 presentation 的说法,平衡融合位置提供程序每小时消耗约 0.6% 的电池,典型的请求间隔为 20 秒,因此它可能是准确度和电池消耗之间的良好权衡。 有点跑题了,但您是否成功地让地理围栏在户外仅使用 GPS(无蜂窝)工作?如果其他应用程序像您说的那样请求位置(例如地图),我会得到触发器,但不是其他应用程序。 我什至不确定这是否可能 - 每当我在手机上打开 wifi 和手机定位时(KitKat 中的仅设备模式),我都会收到错误消息:Goefences 不可用。所以我想说我们现在对此无能为力:/ 我发现了完全相同的问题,几天来我一直在努力寻找一个好的折衷方案。如果您在某个位置定居一段时间,仅依靠手机上的自动位置更新似乎可以正常工作,但通常如果您正在开车,即使打开 GPS,您也会完全开车穿过一个位置而不会触发围栏.但是,如果 Google 地图处于打开状态,则会立即触发围栏。我认为解决方案是实现您自己的服务,该服务以 20 秒的间隔进行轮询并接受电池权衡。

以上是关于使用融合位置地理围栏时是不是需要请求位置更新?的主要内容,如果未能解决你的问题,请参考以下文章

位置更新在后台停止 - iOS

iOS蓝色状态栏同时使用地理围栏/背景位置更新来触发通知

根据用户当前位置设置 2 公里外的随机地理围栏位置

新的 Android 地理围栏 API - 示例代码在位置时不会发出警报/通知

Android - 需要添加超过 100 个地理围栏

Android 地理围栏背景限制