在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设备。 它看起来像这个蹩脚的苹果东西有一些错误。

有谁知道如何以编程方式重新启动蓝牙?

Interesting Posts