iOS上未收到蓝牙LE通知

时间:2015-03-30 08:22:01

标签: ios cordova bluetooth

我们正在开发一个使用cordova作为xplatform开发工具的蓝牙项目。

我们正在为Android和iOS开发并为cordova编写一个BLE插件。

在Android上一切正常。现在出现了问题:

在iOS上,我们可以读/写甚至订阅通知。

问题出现在我们尝试接收更新的值时,没有任何反应。

简而言之

- connect to device
- discover services
- discover characterics
- subscribe to notification characteristic

这很好用:

-(void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error

正在调用,而characteristic.isNotifying是 true

对特性进行简单的读操作时,

-(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
正在调用

回调。

问题出现了:

从外设更新值时,回调根本就不会被调用。

我们没有任何线索要看,因为根本没有发生错误,所以也许有人知道调试这个问题的方法吗?

注意:使用外部工具连接外设时,订阅特性并更新其值。收到通知。这是iOS特定的。

1 个答案:

答案 0 :(得分:0)

好的问题是: 我们在回调接收的临时外设上调用[peripheral setNotificaiton:etc]。 当我们在onConnected存储的外围设备对象上设置通知时,会收到通知。 (self.peripheral)

这不是答案,因为我们重新启动了iOS设备。看起来在这个蹩脚的苹果中存在某种错误。

有人知道如何以编程方式重启蓝牙吗?