Ios ibeacon已通电,而不是进入或离开该区域

Ios ibeacon已通电,而不是进入或离开该区域,ios,ibeacon,Ios,Ibeacon,我一直在玩各种测试应用程序,它们可以检测设备何时进入或离开iBeacon的区域,但我的问题是,是否有任何应用程序可以检测信标何时开启 我问这个问题的原因是,如果我和我的iPhone坐在同一个房间里,从信标上取下电池,然后重新插入,那么我迄今为止尝试过的所有应用程序都不会触发区域输入响应 请原谅我的非技术性问题,直到我能确定这种类型的检测是否可行,我还没有完全沉浸在编码中,因为它可能不适合我的应用。我有过类似的经历,并假设只有在你四处走动时才检查新的信标。从节能的角度和信标的主要使用情况来看,这是

我一直在玩各种测试应用程序,它们可以检测设备何时进入或离开iBeacon的区域,但我的问题是,是否有任何应用程序可以检测信标何时开启

我问这个问题的原因是,如果我和我的iPhone坐在同一个房间里,从信标上取下电池,然后重新插入,那么我迄今为止尝试过的所有应用程序都不会触发区域输入响应


请原谅我的非技术性问题,直到我能确定这种类型的检测是否可行,我还没有完全沉浸在编码中,因为它可能不适合我的应用。

我有过类似的经历,并假设只有在你四处走动时才检查新的信标。从节能的角度和信标的主要使用情况来看,这是有意义的。

如果CLLocationManager对象当前正在为信标测距,并且信标已经在范围内,则可以在通电时检测信标

这里要了解的是区域监测和信标测距之间的区别

某些应用程序仅以区域监控开始,仅在输入区域时进行测距,并在退出区域时停止测距。(取出电池将导致退出区域)当您将电池放回时,不会检测到这种情况下的信标,因为测距已停止


当你的应用程序启动时,开始使用StarTrangBeaconRegion:方法进行测距,不要在代码中的任何地方停止此操作。

从你手机的角度思考:关闭iBeacon的电源看起来与离开其发射机范围完全相同。同样,给iBeacon通电看起来与进入其发射机范围完全相同

iOS CoreLocation监视回调的工作方式(didEnterRegion/didExitRegion)与上述两种情况完全相同

我怀疑,当您打开iBeacon电源时,您没有看到didEnterRegion回调的原因是您没有让它断电足够长的时间。iOS CoreLocation需要时间来决定手机是否退出某个地区,如果它认为手机从未离开过某个地区,它通常不会告诉你你进入了该地区

有两个建议可以让你更容易做到这一点

  • 在进行此类测试时,在预期didEnterRegion事件之前,请始终验证是否获得了didExitRegion指示。(将NSLog行添加到appDelegate以帮助您查看此内容。)

  • 每当为iBeacons设置监视时,都会启用iBeacons的测距。这使得在前景中检测区域变换所需的时间更快


  • 有关检测区域转换所需时间的更多信息,请参见。

    感谢您将我引向Radius博客,我错过了。我可以证实你所怀疑的事实上是原因。我像一个渴望的婴儿一样,一直在把电池取出并更换。卸下电池后,我一直等到区域外信息弹出(doh),重新插入电池后,区域内信息每次在几秒钟内弹出。现在,我将成为一个好小伙子,全身心投入到代码中,直到代码正常工作,我才会出来。如果对其他人有帮助的话,我是使用J David Crow的radius应用程序和iBeacon管理器来测试的。事实并非如此。