失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android ble 传输数据 安卓如何提高ble传输速度

android ble 传输数据 安卓如何提高ble传输速度

时间:2023-10-06 01:49:43

相关推荐

android ble 传输数据 安卓如何提高ble传输速度

关于安卓传输最大只能传输20个byte的数据问题

前面这个问题答案是从网上取来,具体链接忘记了,如有冒犯,敬请原谅,这只是用来提醒自己以防忘记,链接/sinat_19...。

做安卓开发的时候经常会遇到下面一个问题:

想在gatt client上(一般是手机上)传输长一点的数据给gatt server(一般是一个Bluetooth smart设备,即只有BLE功能的设备),但通过writeCharacteristic(BluetoothGattCharacteristic) 来写的时候发现最多只能写入20个byte的数据。

这篇文章会回答下面几个问题:

为什么会是20?

core spec里面定义了ATT的默认MTU为23个bytes,除去ATT的opcode一个字节以及ATT的handle2个字节之后,剩下的20个字节便是留给GATT的了。考虑到有些Bluetooth smart设备功能弱小,不敢太奢侈的使用内存空间,因此core spec规定每一个设备都必须支持MTU为23。

在两个设备连接初期,大家都像新交的朋友一样,不知对方底细,因此严格的按照套路来走,即最多一次发20个字节,是最保险的。

由于ATT的最大长度为512byte,

因此一般认为MTU的最大长度为512个byte就够了,再大也没什么意义,你不可能发一个超过512的ATT的数据,就像是孙猴子跑不过五行山一样。

所以ATT的MTU的最大长度可视为512个bytes。

如何突破20?

很简单嘛,改变传输的ATT的MTU就行了,

如果觉得《android ble 传输数据 安卓如何提高ble传输速度》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。