蓝牙低功耗 - 发送数据包非常慢

时间:2017-03-07 00:08:55

标签: android bluetooth bluetooth-lowenergy

我们正在构建一个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写入吗?

1 个答案:

答案 0 :(得分:0)

如果您的目标是API 21及更高版本,我会尝试在BluetoothGatt上使用requestConnectionPriority来获得更高的连接优先级,从而为您提供更好的速度。