Mac上的CoreBluetooth(OS X Yosemite):首次连接后数据接收延迟

时间:2015-01-26 06:38:09

标签: objective-c macos core-bluetooth

我在Mac mini上使用CoreBluetooth时遇到了一个奇怪的问题。根据设计,我的代码应在连接后发现特征服务后收到数据更新通知。问题是如果事件在最初的20秒内被硬件触发,则不会更新数据。

我在iOS中测试了相同的代码,但一切正常,没有任何dealy。所以问题是:

Apple首次BLE连接后会延迟 - [didUpdateValueForCharacteristic:]通知吗?

此外,我正在使用自定义配置文件(自定义UUID)。

感谢。

1 个答案:

答案 0 :(得分:0)

根据documentation

  

当您的应用调用时,会调用此方法   readValueForCharacteristic:方法,或外设通知时   你的应用程序表示通知的特征值   和指示已启用(通过成功呼叫   setNotifyValue:forCharacteristic :)已更改。

所以不,不能保证在发现特征后会调用此方法。您必须致电readValueForCharacteristic或订阅通知并等待外围设备发送通知。

但是,在发现特征后,您可以使用peripheral:didDiscoverCharacteristicsForService:error:方法获得其值。