我正在尝试弄清楚如何触发某些回调。
在外设上 peripheralManager:central:didSubscribeToCharacteristic:
被正确调用并且它发送一个数据 block (两个中的第一个)到中央接收它在 peripheral:didUpdateValueForCharacteristic:error:
正如预期的那样。
现在剩下一个 block 应该在外围设备的回调 peripheralManagerIsReadyToUpdateSubscribers:
中发送,根据 Apple's test application .
我已经过测试和验证,它在那里工作正常。这有点可疑,尽管根据文档,它只应该在外围管理器的 updateValue:forCharacteristic:onSubscribedCentrals:
失败时调用。
如何让外设发送剩余的 block ?我可以为您提供代码,但它几乎相同(我使用的是一组 NSData block ,而不是像示例中那样的一个大 NSData ) 对于我链接到的示例应用程序,我更好奇回调链是如何工作的,以及不同的选择器需要准备什么才能触发。
最佳答案
你做的是正常的操作方式。外设管理器根据当前设置处理数据发送和流量控制。例如。如果您使用指示而不是通知,则每次更新都必须得到接收方的确认,然后才能再次发送。
另一方面,通知类似于 UDP 数据包。他们可能会迷路。为确保数据无误地到达,您需要实现额外的控制流管理。
总而言之,你做对了。
关于objective-c - 蓝牙核心框架回调例程 peripheralManagerIsReadyToUpdateSubscribers : isn't called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959384/