gpt4 book ai didi

objective-c - 蓝牙核心框架回调例程 peripheralManagerIsReadyToUpdateSubscribers : isn't called

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:12 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何触发某些回调。在外设上 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com