我正在使用CoreLocation框架与iBeacons进行区域监控。当我使用像#34;找到iBeacon"这样的应用程序来模拟灯塔时,一切都运行良好。当我打开信标传输时,我可以立即检测到信标。
然而,当使用Radius提供的真实信标进行测试时,需要很长时间才能检测到信标。
我也启用了notifyEntryOnDisplay。
从真实信标和模拟信标发送时有区别吗?
答案 0 :(得分:2)
当您使用iOS以使用Locate for iBeacon或其他应用程序作为iBeacon进行传输时,其无线电传输功能与配置有相同标识符的正确设计的硬件iBeacon完全相同。简单地说,iOS设备不是模拟的iBeacon,它是 iBeacon。
这些设备之间的检测时间平均应相同,因此可能存在测试设置问题。
您是否使用完全相同的程序来检测每种情况下的信标?当您进行每项测试时,两个测试用例都在后台始终保持一致吗?你如何打开硬件信标(或使其进入范围)?还有什么不同呢?
完全披露:我是Radius Networks的总工程师和iBeacon Locate的作者。
编辑:如果要比较不同iBeacon类型之间的检测时间,则必须在设备类型之间使用完全相同的过程,因为改变测量技术可能会改变您的结果。对于电池供电的信标来说这可能具有挑战性(您必须打开它们并取出电池然后再将其放回去。)
在测量背景检测时间时,将NSLog语句放在didEnterRegion和didExitRegion回调中,然后使用日志窗口中的时间戳进行所有比较。在期待参赛活动之前一定要获得退出活动。
另外,请注意,从一次测量到下一次测量,相同信标的检测时间可能会有所不同,因此请进行多次测量。
您可以在此处阅读我用于获得准确检测时间测量的技术:http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html
答案 1 :(得分:0)
您可以使用
- (void)locationManager:(CLLocationManager *)manager
didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
当您在区域
时,此方法将持续调用