在使用Fused Location Geofences时,我需要请求位置更新吗?

9

我已经成功地使用Android开发者文档实现了位置围栏。

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

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

这是因为在没有请求更新的情况下,融合定位提供程序处于“被动”模式,并依赖其他应用程序的请求吗?我需要实现位置请求和围栏吗?


你找到解决方案了吗? - Chad Bingham
1个回答

3
我正在开发一款应用程序,实现了地理围栏和位置请求功能,以下是我的观察:
当应用程序处于活动状态并且我正在接收位置更新时(已知位置),地理围栏的行为非常准确 - 我几乎可以立即获得意图。
当应用程序处于非活动状态时,我观察到相同的行为 - 有时候意图会立即出现,有时需要等待一段时间,有时需要等待很长时间。当然,当有其他应用程序(例如 Google 地图)请求位置时,意图通常又会立即出现。但是,当不需要精确定位时,通常需要等待一段时间。对于关闭 Wi-Fi/移动数据并在建筑物之间移动的人来说,这完全是一场噩梦。因为在室内没有 GPS 信号,而且他们在外面的时间很短,手机通常不会被唤醒...
因此,我认为这实际上是预期的行为。(否则电池寿命将非常糟糕)

1
感谢您的回复。对我来说,更频繁的位置请求可能是解决此问题的方法。根据Google IO 13演示文稿,平衡融合位置提供程序每小时耗电约为0.6%,典型的请求间隔为20秒,因此这可能是精度和电池消耗之间的良好权衡。 - Nick
略微偏题,但您是否成功使用仅GPS(无蜂窝数据)在户外实现地理围栏功能?如果某些其他应用程序正在请求位置,例如Maps,我会触发它,但如果没有这样的应用程序,则不会触发。 - Nick
我不确定这是否可能 - 每当我在我的手机上关闭wifi和蜂窝定位(KitKat中的设备模式),我都会收到错误消息:Goefences不可用。所以我想现在我们无法对此做任何事情 :/ - daemontus
我遇到了完全相同的问题,已经苦苦挣扎了几天,试图找到一个好的折衷方案。如果您在一个地点定居一段时间,仅依赖手机上的自动位置更新似乎运作良好,但是如果您正在驾车,即使开启GPS,也可能会完全通过一个位置而不触发围栏。然而,如果打开Google Maps,则围栏会立即触发。我认为解决方案是实现自己的服务,以20秒间隔轮询并接受电池折衷。 - Joss Stuart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接