dbr*_*bro 5 android bluetooth bluetooth-lowenergy
我有蓝牙低功耗应用程序,要求MTU大小超过默认的23个字节.
虽然Android 在API 21中引入了BluetoothGatt#requestMTU(),但是有没有办法,包括使用私有API来完成这个预先的API 21?
如果您控制外围设备,则可以从外围设备发出MTU请求(ATT_OP_MTU_REQ,操作码0x02)。如果外围设备有要求,Android可以支持更大的GATT MTU(更新:最大值为517个字节),并将愉快地发送一个ATT_OP_MTU_RESP消息。
唯一棘手的事情是MTU交换可能不会与零散的读/写重叠。一种解决方法是客户端在给定的握手时间进行睡眠,外设在该时间发送MTU请求。另一个可能的解决方法是触发MTU交换的“魔术”特性上的READ或WRITE。
但是,随着MTU的增加,我更经常收到Status = 133错误,这可能是由较大数据包的较高数据包错误率引起的吗?
| 归档时间: |
|
| 查看次数: |
5812 次 |
| 最近记录: |