小米T11上的Android BLE完全破坏行为

cbjzeqam  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(91)

我目前正试图找出为什么一些Android设备与我们的蓝牙低功耗应用程序有问题。
与此工作,我运行相同的代码库&应用程序在我的三星S22和小米T11或OnePlus Nord 2.
它是一个简单的蓝牙低功耗应用程序,我发送数据到外围设备/服务器
我的三星工程完美的发送和阅读数据从关贸总协定设备,我的小米T11没有那么多.下面是一个示例日志:

08-10 16:31:21.642 21053 21071 V Wrote descriptor for e5694fc9 status 0
08-10 16:31:21.647 21053 21071 V Transmitting 10 bytes
08-10 16:31:21.657 21053 21069 V Device received the data (onCharacteristicWrite) GATT status: 128
08-10 16:31:21.671 21053 21069 V Transmitting 10 bytes
08-10 16:31:21.677 21053 21069 V Device received the data (onCharacteristicWrite) GATT status: 128
08-10 16:31:21.719 21053 21069 V Done sending, awaiting response from peripheral
08-10 16:31:21.727 21053 21069 V Device received the data (onCharacteristicWrite) GATT status: 133

如您所见,GATT状态128(NO_RESOURCE)和状态133(generic?)
这在我的三星身上没有发生。
SDK目标版本33,两款设备都运行Android 13。
此问题很可能也会影响这些设备,因为它们都具有Mediatek芯片组:一加Nord 2、Oppo、摩托罗拉
有没有人知道问题是什么以及如何解决?
测试BLE GATT的各种实现。
编辑:我发现当我发送一个空字节数组到外围设备时会发生错误,所以似乎联发科芯片组硬件堆栈不喜欢有效载荷(字节数组)为空。

erhoui1w

erhoui1w1#

不幸的是,这些都是已知的通用Android错误,但还没有有效的修复。它们与Android手机上的硬件/堆栈有关,您最好的选择是实现一个变通方案。在这种情况下,解决方法是在由于状态128或状态133而断开连接时尝试重新连接。我还读到,尝试与远程设备绑定有时也可以解决这个问题。查看下面的链接以获取更多信息:-

相关问题