为什么我们在写入特征时会收到 ERROR_GATT_WRITE_REQUEST_BUSY 错误?

问题描述 投票:0回答:1

我正在 ble 上构建聊天应用程序。我不需要队列,因为我将按顺序写入。但有时我会收到此错误。我尝试调试它,我发现如果我删除我的通知特征,那么它工作正常,但如果我添加它,那么它会显示该错误。它们有何关系?我尝试查找,但没有任何文档讨论此错误。

android kotlin bluetooth-lowenergy android-bluetooth bluetooth-gatt
1个回答
1
投票

当您尝试同时执行太多 GATT 操作时,通常会发生此错误。我还没有看到这种情况发生,因为通知正在进行时会进行写入尝试,因为大多数 GATT 服务器都能够处理该情况。我主要在快速连续执行 GATT 写入操作而不等待“完成”或“ACK”事件时看到它。也许在您的情况下发生这种情况是因为您发送了太多写入事件?您可以通过在执行新的 GATT 操作之前执行等待 GATT 完成事件的适当流程来测试这一点,或者作为快速破解/解决方法,您可以尝试在连续的 GATT 写入之前引入一个小的延迟,看看这是否可以解决您的问题。无论如何,正如 Michael Kotzjan 所建议的那样,共享代码将使调试实际发生的情况变得更加容易。

© www.soinside.com 2019 - 2024. All rights reserved.