如何检测Swift中未连接的外围设备是否存在范围?

时间:2015-06-15 22:19:31

标签: swift bluetooth-lowenergy core-bluetooth

使用CoreBluetooth在Swift中使用应用程序进行编写,没有任何方法可以不经常重新扫描,以检测我未连接的外围设备是否已不在附近。

1 个答案:

答案 0 :(得分:1)

与语言无关,如果您没有连接到外围设备,则当外围设备不在范围内时,没有简单的通知。

唯一的解决方案是在CBCentralManagerScanOptionAllowDuplicatesKey的选项中使用scanForPeripheralsWithServices并维护已知外围设备的列表,当它们停止报告时将它们从列表中老化。

例如 -

  • 创建字典
  • 报告外围设备时将其添加到字典中(使用ID的字符串作为键),Int值为30
  • 创建每秒触发的NSTimer
  • 当计时器触发时,遍历字典,递减每个Int。
  • 如果Int达到零,则从字典中删除该外围设备