This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2340R5:采用 Android 13/14 的 TI 模块上的 BLE 服务发现不一致(状态 22 错误)

Guru**** 2487425 points
Other Parts Discussed in Thread: CC2340R5

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1555614/cc2340r5-inconsistent-ble-service-discovery-on-ti-module-with-android-13-14-status-22-error

器件型号:CC2340R5


工具/软件:

您好!

我在移动应用和 TI 器件模块之间的 BLE 通信期间经常遇到问题。

在启动连接时、我观察到 GATT 连接已立即建立。 但是、当移动应用程序尝试发现服务列表时、设备没有响应。 因此、几秒钟后、连接失败并使用状态代码 22 终止。

这个问题总是发生在大多数 Android 手机与 Android 版本 13 和 14,连接只偶尔成功。 在 Motorola G54 电话上未发现此问题。 设备每次在特定型号上成功连接和通信。

我还使用 SimpleLink Connect 和 LightBlue 应用进行了测试、并观察到了相同的问题。  

我还将附加日志文件以供您参考。 您能否就导致此行为的原因给出建议、或建议解决或进一步调查此问题的任何步骤?

e2e.ti.com/.../logs-FOTA-Mobile-App.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    错误 0x22 和 0x08 表示连接或请求已超时(请参阅 Android-BLE-Library 中的 GATT 错误代码)。 但是、错误 22(而不是 0x22)意味着您的中心已选择断开连接 。 在您的设备名为 DiscoverServices 后半秒内发生此断开连接、您能告诉我您正在使用的连接参数吗? 如果连接参数的超时值远小于或远多于 500ms、我认为这里不会出现超时问题。

    我要做的第一个调试步骤是检查您是否将正确的参数传递到  discoverServices 函数:在成功日志中, discoverServices 调用日志给设备它的发现 (discoverServices ()-设备: XX:xx:xx:xx:AA:C9 )。 在故障日志中、设备日志为空 (discoverServices()- device: )。  

    此致、
    Maxence

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Maxence、

    感谢您指出这一点。

    我目前正在 Kotlin 中以标准方式调用 GATT.DiscoverServices()。  我还附加了我的代码片段以供您参考。  

    如  需更多信息、请告知我。  

    e2e.ti.com/.../BLE-Code-Snippets.txt

    谢谢、此致

    德罗西·保罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我无法真正帮助您处理代码、因为我从未使用过 Kotlin、也从未使用过您正在使用的 BLE 库。

    正如我之前所说的、我首先要检查您对 DiscoverServices 的呼叫的返回值之类的内容、这在另一台设备上似乎是错误的。 可能不同的 Android 版本会改变您的库的使用方式。 接下来、如果 Kotlin 调试没有多少帮助、我将尝试使用 BLE 监听器来查看正在交换的数据包以及导致问题的数据包。

    您还可以尝试在您用于连接的 BLE 库的论坛上提问 、因为问题似乎来自您的中央器件、而不是 CC2340R5 外设。

    此致。