Android 蓝牙 (BLE) 中的错误代码 133 是什么?

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

我正在 Android 中使用 BLE 设备。我可以毫无问题地扫描设备、连接到它并读取其特征和服务。

当我对要读取的特征调用“readCharacteristic”时,onCharacteristicRead 的回调返回状态为 133,并且没有数据。

我知道该设备可以正常工作,因为我有一个 iOS 版本的应用程序,它可以执行相同的操作并且工作正常。

我确保所有 BLE 操作都在主线程上序列化,有些人建议这样做,但这没有帮助。

我真的需要解决这个问题,这样我才能让我的应用程序正常运行。

android android-bluetooth
1个回答
0
投票

问题原来是设备试图发送大于 MTU 大小的数据包,在 Android 中默认为 23,或者至少在我测试的特定设备上是这样。

请求更大的 MTU 大小确实解决了问题。

但是,如果错误代码能够明确指出这是问题所在,那将会非常有帮助。这本来可以节省我一天的工作时间。

此外,我在 iPhone 版本的应用程序中从未遇到过此问题,因为 iOS 似乎会自动协商更大的 MTU 大小。这似乎是个好主意。 23 字节的限制已经不再有用了。

弗兰克

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