Jar*_*rod 1 iphone objective-c cllocationmanager ibeacon
我正在研究我的家庭自动化应用程序.我正在使用estimotes iBeacons,我想要做的就是让我的家庭自动化控制能够知道我在家里的距离.每个iBeacon在我的家庭控制器上都有一个虚拟开关,当我接触到iBeacon时,我的设备在前台或后台将更新我的控制器以打开我的开关,当我靠近灯塔时关闭它然后当我有想远离我的灯塔.所有这一切都很完美,我很喜欢它,但是我的一些条件依赖于我在一段时间内接近,而我注意到的是几分钟后甚至在接近半小时后一个信标,iPhone 5s基本上断开它的连接,然后将其重新启动,导致它执行退出(关闭我的虚拟交换机),然后立即执行输入(转回虚拟交换机).你可以想象这对于妻子和我自己来说非常烦人,因为退出/进入,卧室的灯开始闪烁.我已经读过有关此问题的人,并尝试了我在互联网上看到的一切无济于事.
我注意到,每当为iBeacon划过监视器交叉时,都会调用didDetermineState和相应的Enter/Exit回调函数.我该怎么办才能让它停止发生?如果需要,我可以提供代码示例,但这更像是一个普遍的问题.
这是iBeacons(以及像我们这样的极客的妻子)的常见问题,简单的解决方案是软件过滤器.您必须忽略仅持续几秒钟的区域退出事件,直到您确认没有后续条目事件为止.
您可以通过创建跟踪这些事件的变量(例如justExitedRegion)来完成此操作.当您收到退出区域通知时,请设置justExitedRegion = YES并启动五秒计时器.当计时器熄灭时,如果justExitedRegion == YES,则正常执行退出逻辑并设置justExitedRegion = NO.否则跳过处理退出逻辑.
同时,如果您收到条目通知并且justExitedRegion == YES,请将justExitedRegion设置为NO并跳过您的输入处理.
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |