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

Android 使用融合位置地理围栏时是否需要请求位置更新?,android,gps,android-location,geofencing,android-geofence,Android,Gps,Android Location,Geofencing,Android Geofence,我已经成功地使用 我遇到的问题是,geofence事件并不总是可靠的。有时我一到这个位置就会触发,有时需要几分钟(即使半径值很大),有时根本不开火 我还注意到,即使我启用了GPS,应用程序也没有使用GPS传感器获取我的位置 这是因为在没有请求更新的情况下,融合位置提供商处于“被动”模式,并且依赖于其他应用程序的请求吗?我是否需要实施位置请求以及地理围栏 不确定它是否完全回答了您的问题,但我正在开发一个应用程序,该应用程序实现地理围栏和位置请求,以下是我的观察结果: 当应用程序处于活动状态且我收到

我已经成功地使用

我遇到的问题是,geofence事件并不总是可靠的。有时我一到这个位置就会触发,有时需要几分钟(即使半径值很大),有时根本不开火

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


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

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

当应用程序处于活动状态且我收到位置更新(位置已知)时,地理围栏的行为会准确无误——我几乎会立即收到意图

当应用程序处于非活动状态时,我观察到同样的行为——有时意图是即时的,有时需要一段时间,有时需要太长时间。当然,当有其他应用程序,如谷歌地图,请求位置,意图再次,几乎即时。但当不需要精确定位时,通常需要一段时间。总的梦魇是那些关闭wifi/移动数据并在建筑物之间移动的人。因为里面没有GPS,而且他们在外面呆的时间很短,所以手机通常不会醒过来


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

谢谢您的回复。在我看来,更频繁的位置请求可能是解决这一问题的一个办法。据介绍,平衡融合定位提供商每小时消耗约0.6%的电池,典型的请求间隔为20秒,因此在准确性和电池消耗之间可能是一个很好的折衷。有点离题,但您是否成功地让geofences在只有GPS(无电池)的情况下在室外工作?如果其他应用程序像您所说的那样请求位置(如地图),我会触发该触发。我甚至不确定这是否可能-每当我打开手机上的wifi和手机位置(KitKat中的仅设备模式)时,我都会收到错误:Goefenses不可用。所以我想说,我们现在对此无能为力:/我发现了完全相同的问题,几天来我一直在努力寻找一个好的折衷方案。如果你在某个地点待了一段时间,仅仅依靠手机上的自动位置更新似乎效果不错,但通常如果你开车,即使打开了GPS,也会完全不触发围栏地通过某个地点。然而,如果谷歌地图处于开启状态,围栏会立即被触发。我认为解决方案是实现您自己的服务,每隔20秒进行一次轮询,并接受电池的折衷。您找到解决方案了吗?