在iOS上未收到Bluetooth LE通知
我们正在开发一个使用cordova作为xplatform开发工具的蓝牙项目。
我们正在为Android和iOS开发,为我们自己编写一个BOL插件。
在Android上,一切运行良好。 现在出现这个问题:
在iOS上,我们可以读取/写入甚至订阅通知。
当我们尝试接收更新的值时,问题就来了,然后什么也没有发生。
简而言之
- connect to device - discover services - discover characterics - subscribe to notification characteristic
这很好:
-(void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
被召唤,并且特征。通知是真实的
在对特征进行简单的读操作时,
-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
callback被称为。
问题来了:
当从外设更新数值时,callback就不会被调用。
我们没有线索看,因为没有错误发生,所以也许有人知道一个方法来debugging这个问题?
注意:使用外部工具连接外设时,订阅特性并更新其值。 通知已收到。 它是iOS的具体。
好的问题是:我们在callback接收到的临时外设上调用[peripheral setNotificaiton:etc]。 当我们在onConnected存储的外设对象上设置通知时,会收到通知。 (self.peripheral)
不,这不是答案,它是工作,因为我们重新启动iOS设备。 它看起来像这个蹩脚的苹果东西有一些错误。
有谁知道如何以编程方式重新启动蓝牙?