我使用CoreLocation
来监控iBeacons。问题是,如果我有100个具有相同UUID聚类的信标,我只得到一个didEnterRegion
,而不是100个。
我可以通过使用CoreBluetooth
编码我自己的实现来修复它吗?
CoreLocation
在(后台模式)上不需要任何功能来监控。 CoreBluetooth
是否需要它?苹果是否允许具有这些功能的应用程序到商店?
答案 0 :(得分:1)
虽然当信标在附近时可以获得CoreBluetooth
回调,但Apple会阻止使用CoreBluetooth
读取任何信标数据的能力。所以这不是解决方案。详情请见http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html
另一种解决方案是使用CoreLocation
将区域监控与范围相结合。然后,将代码放入locationManager:didRangeBeacons:inRegion:
范围回调(不是监控回调)。测距回调提供该区域中当前时间可见的所有信标的数组。在您的情况下,如果同时可以看到100个信标,则此回调将包含100个信标的数组,允许您查看每个信标的标识符。