仅在需要时重新注册地理围栏

Re-register Geofences only when required

根据Android geofencing documentation,如果发生以下情况,应重新注册地理围栏:

解决方法:添加地理围栏时,应用程序应在内部存储地理围栏(SharedPreferences)。然后监听设备的启动完成动作,并重新注册存储的地理围栏。

解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。

解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。


但是遇到以下情况我不知道该怎么办,请您指教?

我发现无法检测 Google Play 服务数据被清除的情况,所以我只是在应用程序打开时请求新的地理围栏。

正如@Sagar 提到的,GEOFENCE_NOT_AVAILABLE 在转换服务中收到。这是在禁用位置时收到的。为了解决这个问题,每当我请求它们时,我都会保存地理围栏(使用 SharedPreferences),然后我有一个 BroadcastReceiver 可以检测何时再次启用 Location。我在这里重新加载保存的地理围栏。

谢谢。