Android Geofence示例代码中的错误?有人可以确认吗?

Tor*_*nas 15 maps android location android-geofence

我不确定这是否是新Android GeoFence示例代码错误,或者我对它应该做的事情的理解是错误的.示例应用程序会创建地理围栏,但在地理围栏被破坏时不会发出警报.如果有人想尝试并确认,可以从这里下载示例代码:

https://developer.android.com/training/location/geofencing.html

这就是我期待的示例应用程序:

  • 设置2个不同的地理围栏.在我的情况下,我通过输入他们各自的纬度/经度来选择相距一英里的2点.我还将半径设置为250米.
  • 我一个接一个地开车到这两个地点中的每一个,我假设会弹出一个通知,表明地理围栏已被破坏.

在这种情况下,没有注册通知或任何日志消息,这意味着"ReceiveTransitionsIntentService"从未被调用.一个观察是,当我开车到第一个位置,然后在该位置添加新的地理围栏时,通知会立即触发,但是我设置并开车到的任何其他位置(地理围栏)都没有任何反应.

知道为什么吗?关于示例应用程序的功能,我的理解是否正确?

除了示例代码中的内容之外,我还需要做什么才能在驾驶时突破地理围栏时收到警报吗?地理围栏监控是否与创建地理围栏分开,我在这里缺少什么?

非常感谢任何输入,我们非常渴望在我们的应用程序中使用它,但现在我们被卡住了.

谢谢,托里.

Ric*_*ick 10

首先,您对应用程序功能的理解是正确的.每当您进入/离开其中一个地理围栏时,它会在通知中显示您(它始终更新相同的通知顺序,因此请留意它,否则您可能会错过其中一个事件).

其次,要小心,因为Geofence 1默认只触发ENTER事件.因此,如果您在内部后离开该地理围栏区域,您将无法收到通知!您可以在MainActivity.java上创建mUIGeofence1对象时更改此行为.

最后,与所有与位置相关的事情一样,这个API并不完美.从我的测试到目前为止我从未见过它启动GPS,所以在外面它几乎似乎依赖于网络位置很容易不会掉下来在500米半径的地理围栏下,即使你站在它的中间.在IO的一次演示中,Reto Meier提到API将足够聪明以尽可能最好地处理电池消耗,因此当用户开始接近地理围栏时它只会打开GPS - 这是有道理的 - 但这似乎永远不会发生.