Android 地理围栏:仅在地理围栏外时触发

Android Geofencing: Trigger only while outside geofence

我正在制作一个地理围栏应用程序,它必须在设备位于地理围栏之外时不断触发通知,而不仅仅是在退出时。

我已经尝试通过 Google android developer training page 中给出的训练示例使用地理围栏 API。但是,我只有在设备进入、停留或退出时才会收到通知。

根据我目前在 SO 和 google 中的研究,地理围栏 API 中只处理三种类型的转换:进入、停留和退出。并且通知仅在设备进入地理围栏时开始,直到它退出。

任何人都可以帮我解决这个问题吗?

那是不可能的。在地理围栏区域之外没有任何意义。那不是地理围栏的用例。

您可以尝试指定更广泛的区域范围,然后检查地理坐标是否超出您想要拥有的区域。

如果你想要自己的自定义退出触发器,当你在围栏外面时。您可以通过测量当前位置(FusedLocationProvider)和栅栏位置(纬度,经度)之间的距离(纬度,经度)来编写自定义操作。

您可以使用 Android 位置 API 中可用的以下方法来测量差异并生成自定义触发器以指示您在围栏之外。

通常这是您需要做的

if[(位置差异)>(地理围栏的半径)] -> 自定义围栏动作出口

  1. distanceTo
  2. distanceBetween(在此处提供您当前的经纬度和围栏经纬度)