我如何确定应用程序注册的所有地理围栏?
在使用 LocationClient.addGeofences()
注册地理围栏后,等待 onAddGeofencesResuls()
回调(返回 SUCCESS),并尝试使用相同的 intent 调用 LocationClient.getTriggeringGeofences(intent)
,但只收到了 null
。
我如何确定应用程序注册的所有地理围栏?
在使用 LocationClient.addGeofences()
注册地理围栏后,等待 onAddGeofencesResuls()
回调(返回 SUCCESS),并尝试使用相同的 intent 调用 LocationClient.getTriggeringGeofences(intent)
,但只收到了 null
。
我猜您正在尝试比较已注册的地理围栏与您在自己的数据库中持久化的地理围栏。
我之前也尝试过这样做,但API暗示这不是正确的方法。现在我只需简单地注册地理围栏,它会自动替换以前注册的地理围栏。当我注册的某些地理围栏触发并且我应该将它们移除时,我将在触发意图中将它们移除。
另一个可能性是将所有地理围栏注册为24小时时间限制,并让代码每天至少注册一次地理围栏。
getTriggeringGeofences() 只返回上次触发转换的 Geofences。因此,如果没有发生转换,它会返回 null。请参阅文档:http://developer.android.com/reference/com/google/android/gms/location/LocationClient.html#getTriggeringGeofences%28android.content.Intent%29
GeofencingRequest.getGeofences();
该方法返回一个地理围栏列表