在Android上接收BLE通知> 20个字节

时间:2019-03-15 17:25:55

标签: android bluetooth-lowenergy bluetooth-gatt

与CC2652 BLE外围设备建立连接后,我正在使用的Android应用发送MTU更新请求

requestMtu (65)

这是否仅更新传出数据的MTU大小(Android App)?还是现在应该能够接收最大为65个字节的通知?

即使请求MTU更新,我也只能接收小于20个字节的通知。

P.S:我已经验证了同一外围设备可以将大小大于20个字节的通知发送到另一个CC2652 BLE中央设备。

1 个答案:

答案 0 :(得分:1)

我们在一个项目中也遇到了这个问题,发现正常的数据传输受MTU大小的影响,而通知的大小保持在20个字节。

在蓝牙规范第3卷F部分中,陈述了第3.4.7.1节(感谢Emil的评论):

  

服务器可以随时发送属性值的通知。属性值的大小为0到(ATT_MTU-3)

但在表格下方也注明:

  

注意:要使客户端获得长属性,必须使用Read Blob   收到此通知后要求。

对我来说似乎有些困惑。什么是“多头”?比默认MTU大小长吗?还是比协商的MTU大小长?

最后,我们尝试了但没有成功。 现在,我们使用通知作为触发器,然后我们的应用程序需要主动读取特征。

请注意,在Android上,您还需要通过应用主动设置MTU大小。否则,电话将停留在20个字节上。 iPhone会自动执行此操作。