与CC2652 BLE外围设备建立连接后,我正在使用的Android应用发送MTU更新请求
requestMtu (65)
这是否仅更新传出数据的MTU大小(Android App)?还是现在应该能够接收最大为65个字节的通知?
即使请求MTU更新,我也只能接收小于20个字节的通知。
P.S:我已经验证了同一外围设备可以将大小大于20个字节的通知发送到另一个CC2652 BLE中央设备。
答案 0 :(得分:1)
我们在一个项目中也遇到了这个问题,发现正常的数据传输受MTU大小的影响,而通知的大小保持在20个字节。
在蓝牙规范第3卷F部分中,陈述了第3.4.7.1节(感谢Emil的评论):
服务器可以随时发送属性值的通知。属性值的大小为0到(ATT_MTU-3)
但在表格下方也注明:
注意:要使客户端获得长属性,必须使用Read Blob 收到此通知后要求。
对我来说似乎有些困惑。什么是“多头”?比默认MTU大小长吗?还是比协商的MTU大小长?
最后,我们尝试了但没有成功。 现在,我们使用通知作为触发器,然后我们的应用程序需要主动读取特征。
请注意,在Android上,您还需要通过应用主动设置MTU大小。否则,电话将停留在20个字节上。 iPhone会自动执行此操作。