【发布时间】:2013-05-22 02:27:18
【问题描述】:
我一直在测试新的 Google Play 地理围栏服务 API。
我从Android developers site 下载了示例代码。接下来,我在 Android 设备 (Galaxy Note 2) 上运行示例代码。 我将办公室的地理位置和半径设置为10m,但是当我走到办公室时,什么也没发生。
在运行示例代码时,我注意到的一件事是,当我已经在地理围栏范围内,然后将地理围栏添加到 LocationClient 时,没有任何反应。
我已经看过LocationClient class documentation,发现下面一段:
如果用户禁用了网络位置提供程序,地理围栏服务将停止更新,所有已注册的地理围栏将被删除,并由提供的待处理意图生成意图。在这种情况下,
hasError(Intent)返回 true,getErrorCode(Intent)返回GEOFENCE_NOT_AVAILABLE。"
所以我打开了 WiFi,正走到我的办公室(在地理围栏内),然后我收到了“进入地理围栏”的通知。
我有以下问题:
地理围栏是否仅在启用 WiFi 的情况下工作?
为什么我的 3G 网络提供的位置不起作用?
这是示例代码中的错误吗?
或者这是我的错误?
【问题讨论】:
-
同样,我已经看到我声明的地理围栏仅在我的设备有 wifi 连接时才有效......如果这是一个错误,那就是一个非常令人不安的问题
-
我可以在 3g/4g/wifi 上触发地理围栏,但在 3g/4g 上我必须将我的地理围栏半径设置得更大。正如米洛斯所建议的那样是正确的。我也想知道是否有人注意到设置时的延迟时间?进入地理围栏时的滞后......不是即时的。
-
我现在发现这个示例项目有点混乱。什么是地理围栏1和地理围栏2。为什么我要输入纬度、经度和半径2次?
-
NetworkLocationProvider不仅仅意味着 wifi,它是 Wifi 和手机信号塔的转义。如果用户关闭了Network Location,即使 GPS 处于打开状态(根据文档),geofence api 也不起作用,这太糟糕了。 -
请注意,即使您确实获得了职位,它也可能会被“过滤”,因此不会真正更新。在此线程的其他地方查看我的答案。