【发布时间】:2014-05-02 15:49:06
【问题描述】:
您是否需要连接的 LocationClient 来检测用户是否留下了地理围栏? 在我当前的代码中,我连接了我的 LocationClient,建立了一个地理围栏,然后断开了 LocationClient。但是,它有时会检测到我已经离开了它,但在地理围栏之外更远的位置。
【问题讨论】:
标签: android gps android-4.4-kitkat geofencing android-geofence
您是否需要连接的 LocationClient 来检测用户是否留下了地理围栏? 在我当前的代码中,我连接了我的 LocationClient,建立了一个地理围栏,然后断开了 LocationClient。但是,它有时会检测到我已经离开了它,但在地理围栏之外更远的位置。
【问题讨论】:
标签: android gps android-4.4-kitkat geofencing android-geofence
关于 Google Play GeoFencing API 的重要说明。我发现 GeoFencing 从不智能地从 GPS 硬件中检索位置。 GeoFence API 将观察操作系统提供的最准确位置,或者如果没有最近的位置读数可用,它将导致从 Wifi / Cellular 计算位置。 (这很糟糕,因为蜂窝网络非常不准确,而且 wifi 经常不可用)
因此,要从地理围栏 API 中获得所有响应性或准确的结果,您必须设置地理围栏,然后每隔一段时间轮询 GPS 硬件,甚至不对收到的结果做任何事情,这样您就可以在表面之下为操作系统提供有价值的数据。
这可能是您的结果如此不准确的核心原因。直到操作系统确定您 100% 在围栏之外,地理围栏出口才会触发 - 因此,如果位置读数的准确度为 500 米(使用单元地理定位时不太可能)并且您的围栏半径为 50m,那么您d 必须距离您的围栏点至少 550m 才能产生退出事件。
TLDR;每隔一段时间轮询 GPS 硬件而不对结果做任何事情,您将开始获得更准确的地理围栏。
【讨论】: