iOS:蓝牙LE外设在返回范围后不再更新

时间:2014-03-25 18:46:52

标签: ios bluetooth bluetooth-lowenergy core-bluetooth

我编写了一个从TI SensorTag读取数据的iOS应用程序。按照Apple在“核心蓝牙编程指南”中提供的建议,我通过调用外围对象的setNotifyValue:forCharacteristic:方法订阅了服务特性的值。外围设备定期调用peripheral:didUpdateValueForCharacteristic:error:方法通知我感兴趣的值已经改变,我读了它,如文档中所述。

当我将iOS设备从SensorTag移开一定距离时,didUpdateValueForCharacteristic方法停止被调用(显然),因为这两个方法超出范围"。但是当我将设备移回"范围内"时,更新不会恢复。不知何故,我的"外围设备"对象不再代表真正的外围设备。

我可以采取哪些步骤1)以编程方式"注意"外设不再"有效",和2)重新连接到我的设备而无需用户干预?

谢谢!

- 比尔

1 个答案:

答案 0 :(得分:1)

当外围设备断开连接时,将调用centralManager:didDisconnectPeripheral:error回调。在此回调中,您可以使用connectPeripheral:options:方法立即启动与同一外设的连接请求。此请求将保持活动状态,直到连接发生。它不需要任何用户交互。