仅在需要时重新注册地理围栏
Re-register Geofences only when required
根据Android geofencing documentation,如果发生以下情况,应重新注册地理围栏:
- 设备重新启动。
解决方法:添加地理围栏时,应用程序应在内部存储地理围栏(SharedPreferences)。然后监听设备的启动完成动作,并重新注册存储的地理围栏。
- 应用程序已卸载并重新安装。
解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。
- 应用程序的数据被清除。
解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。
但是遇到以下情况我不知道该怎么办,请您指教?
Google 播放服务数据已清除。 如何检测这种情况?
该应用收到了 GEOFENCE_NOT_AVAILABLE 警报。这通常发生在禁用 NLP(Android 的网络位置提供程序)之后。 不确定这个'alert'是从哪里收到的
我发现无法检测 Google Play 服务数据被清除的情况,所以我只是在应用程序打开时请求新的地理围栏。
正如@Sagar 提到的,GEOFENCE_NOT_AVAILABLE 在转换服务中收到。这是在禁用位置时收到的。为了解决这个问题,每当我请求它们时,我都会保存地理围栏(使用 SharedPreferences),然后我有一个 BroadcastReceiver 可以检测何时再次启用 Location。我在这里重新加载保存的地理围栏。
谢谢。
根据Android geofencing documentation,如果发生以下情况,应重新注册地理围栏:
- 设备重新启动。
解决方法:添加地理围栏时,应用程序应在内部存储地理围栏(SharedPreferences)。然后监听设备的启动完成动作,并重新注册存储的地理围栏。
- 应用程序已卸载并重新安装。
解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。
- 应用程序的数据被清除。
解决方案:用户应重新创建地理围栏或远程存储它们,然后在应用程序首次打开时检索。
但是遇到以下情况我不知道该怎么办,请您指教?
Google 播放服务数据已清除。 如何检测这种情况?
该应用收到了 GEOFENCE_NOT_AVAILABLE 警报。这通常发生在禁用 NLP(Android 的网络位置提供程序)之后。 不确定这个'alert'是从哪里收到的
我发现无法检测 Google Play 服务数据被清除的情况,所以我只是在应用程序打开时请求新的地理围栏。
正如@Sagar 提到的,GEOFENCE_NOT_AVAILABLE 在转换服务中收到。这是在禁用位置时收到的。为了解决这个问题,每当我请求它们时,我都会保存地理围栏(使用 SharedPreferences),然后我有一个 BroadcastReceiver 可以检测何时再次启用 Location。我在这里重新加载保存的地理围栏。
谢谢。