我们正在构建一个BLE设备,以及与之通信的移动应用程序。移动应用程序是用Xamarin / C#编写的,Android内容属于特定于Android的PCL(可移植类库)。
我已将数据拆分为小块,因此它符合默认的20字节BLE数据包大小,我有一个96字节长的数据块,因此我将其发送为6个16字节数据包。我已经设置了它,所以前五个数据块的WriteType设置为GattWriteType.NoResponse,只有最后一个数据块的WriteType设置为GattWriteType.Default。
对于前5个数据块中的每一个,我调用SetValue()和WriteCharacteristic(),然后在写入下一个数据块之前等待OnCharacteristicWrite()通知。这样做,我可以在大约20毫秒内写出前5个数据块。但是第6个块(Write_With_Response)在WriteCharacteristic()和相应的OnCharacteristicWrite()通知之间需要大约300毫秒。
这是预期的延迟吗?看起来好长!
我需要调整设置,以便更快地进行BLE写入吗?
答案 0 :(得分:0)
如果您的目标是API 21及更高版本,我会尝试在BluetoothGatt上使用requestConnectionPriority来获得更高的连接优先级,从而为您提供更好的速度。