我要解决的基本问题如下。我有两台iOS设备,一台配置为中央设备,另一台配置为外围设备。我希望外围设备知道中央设备是否由于某种原因而离开或变为非 Activity 状态(例如运行中央设备的设备已关闭)。
在正常情况下,我进行了设置,以便当中心靠近外围设备时,中心可以使用信标区域和测距功能,以在外围设备接近时(CLProximityImmediate)通过特征写入通知外围设备,然后当它仍然在范围内但又相距很远时(CLProximityFar)。这很好。
但是,为了在中央设备从CLProximityImmediate变为某个未知状态时遇到紧急情况,我计划使用来自外围设备的周期性指示,以使中央设备可以响应。如果对指示没有响应,则外围设备可以假定中心不再紧邻。但是,我找不到能够通知外围设备管理器指示失败的回调或委托方法。
方法updateValue:forCharacteristic:onSubscribedCentrals:当基础传输队列已满时返回NO,并且不是因为中心没有响应,这是我理解的方式。
我在这里错过明显的东西吗?外围设备管理员有没有办法告诉中心未收到指示?还是在这种情况下CoreBluetooth中缺少回调?
谢谢你的帮助!
最佳答案
有两个问题可让外围设备知道位置管理器与CLBeacon失去联系:
CLBeacon
不会将底层BTLE外围设备公开为CBPeripheral,因此您将无法让BTLE外围设备知道您的位置监控器在范围内。 问题2可以通过相当复杂的方式解决:
CBPeripherals
,其中advertisementData
包含proximityUUID
。 CBPeripheral
的连接,并收到有关特征值更改的通知。 关于ios - CoreBluetooth:外围设备管理器如何知道中央设备已收到指示?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19130006/