Android BLE在搭载MediaTek芯片的小米T11等设备上异常的问题求助
Android BLE在搭载MediaTek芯片的小米T11等设备上异常的问题求助
最近我一直在排查为什么我们的蓝牙低功耗(BLE)APP在部分Android设备上会出问题。我用同一套代码库和APP分别在我的三星S22、小米T11以及一加Nord2上做了测试,APP的功能很简单——就是往BLE外设/服务器发送数据。
三星S22的表现完全正常,能顺利发送和读取GATT设备的数据,但小米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(通用错误),但这些情况在我的三星设备上完全不会发生。
补充下环境信息:APP的SDK目标版本是33,测试的设备都运行Android 13系统。另外我推测一加Nord2、OPPO、摩托罗拉这些搭载MediaTek芯片的设备可能也会受这个问题影响。
我已经尝试了各种不同的BLE GATT实现方式来排查,但还是没找到根源。
编辑补充:我现在发现这个错误是在发送空字节数组给外设的时候触发的,看起来MediaTek的硬件栈似乎不接受空负载(空字节数组)的情况。
有没有大佬知道这个问题的原因以及解决办法呀?
备注:内容来源于stack exchange,提问作者Robertko
相关产品推荐
相关产品推荐

