我正在使用内置的geofence API(播放服务),并且结果参差不齐。设置地理围栏后,即使GPS处于打开状态且具有最新位置(LocationClient已连接,在后台运行),进入/退出的通知也非常不一致。我开始监视(轮询)位置变化并调试文本字段中的距离,发现即使从设备注册的位置和地理围栏的位置来看,从技术上讲我在地理围栏的内部/外部,有时也会触发通知,而有时不会触发通知。有什么办法可以使这个更可预测?我几乎想放弃此api,而是根据对设备位置的轮询来实现自己的(电池耗尽)地理围栏。
最佳答案
一些建议:
Android Geofence eventually stop getting transition intents
Do Geofences remain active in android after a device reboot
addProximityAlert doesn't work as expected
最后一件重要的事情:如果您遵循上述要点,那么根本不重要,将LocationClient连接到您的应用程序中也没有关系。我在代码中添加或删除Geofence的过程基本上是:
每次发生这种情况时,我的位置客户端总共仅连接几秒钟。操作系统仍然会生成地理围栏警报,并在发生任何情况时调用我的BroadcastReceiver。
如果您做这些事情,我敢打赌,您的体验会有所改善。
希望这可以帮助!