我编写了一个从TI SensorTag读取数据的iOS应用程序。按照Apple在“核心蓝牙编程指南”中提供的建议,我通过调用外围对象的setNotifyValue:forCharacteristic:
方法订阅了服务特性的值。外围设备定期调用peripheral:didUpdateValueForCharacteristic:error:
方法通知我感兴趣的值已经改变,我读了它,如文档中所述。
当我将iOS设备从SensorTag移开一定距离时,didUpdateValueForCharacteristic
方法停止被调用(显然),因为这两个方法超出范围"。但是当我将设备移回"范围内"时,更新不会恢复。不知何故,我的"外围设备"对象不再代表真正的外围设备。
我可以采取哪些步骤1)以编程方式"注意"外设不再"有效",和2)重新连接到我的设备而无需用户干预?
谢谢!
- 比尔
答案 0 :(得分:1)
当外围设备断开连接时,将调用centralManager:didDisconnectPeripheral:error
回调。在此回调中,您可以使用connectPeripheral:options:
方法立即启动与同一外设的连接请求。此请求将保持活动状态,直到连接发生。它不需要任何用户交互。