我正在制作一款使用Core Bluetooth的iOS应用程序,并定期检查外围设备是否还在。我的问题是,当我关闭广告设备(甚至完全关闭蓝牙)时,我的中央设备仍然在我调用retrievePeripheralsWithIdentifiers时返回CBPeripheral对象。一旦它不再做广告,我需要它准确地不返回这个外围设备。提前谢谢!
答案 0 :(得分:2)
retrievePeripheralsWithIdentifiers
查看核心蓝牙数据库以查看它是否可以找到具有指定标识符的外围设备,无论该外围设备的广告当前是否可见。这允许您发出以前见过的外围设备的连接,并且可以再次看到(“核心蓝牙编程指南”中描述的“锁定”场景就是您可以使用它的一个示例)。
要查看外围设备是否是广告,您需要致电scanForPeripheralsWithServices
,为YES
指定CBCentralManagerScanOptionAllowDuplicatesKey
并保留您自己的可见外围设备表,当您避开时将其老化看了一段时间的广告。