如何在Android中为BLE编写快速稳定的特性?

Mar*_*tin 2 android bluetooth-lowenergy

我正在开发Android中的BLE.Android可以通过发送数据到BLE设备Gatt.writeCharacteristic.

但是当我连续写入BLE设备的特性(1秒内5次)时,我会得到GATT_DISCONNECTEDnull,getService并在我尝试时返回GetCharacteristic.

我在市场上看到了一些BLE LED产品.它在Android中使用颜色选择器,如下图所示:

在此输入图像描述

当用户在颜色选择器上快速更改颜色时,BLE LED也会立即改变颜色.

如何像市场上的BLE LED产品一样在Android中为BLE写出快速稳定的特性?

Rob*_*man 8

当你打电话时,gatt.writeCharacteristic你需要做两件事:

  1. 您需要排队gatt读取和写入请求,以便在发出读取或写入请求时,必须等待BluetoothGattCallback中的相应回调,然后才能请求下一次读取或写入.这是Android BluetoothGatt行为,没有详细记录.
  2. 与上面的1.有些相关,你应该检查gatt读写请求的布尔返回值.如果它不返回true,那么您的请求失败.当您进行下一个请求时,某些其他gatt操作仍在进行中,则会发生这种情况.

我发现快速读取(或写入)BLE特性的最佳方法是发出请求,等待回调并从回调中发出下一个请求.如果有更快或更可靠的方式,我不知道它.

  • 如果我有很多操作要做,我如何同步这些操作?我的意思是等待一个操作的回调来做下一个 (2认同)
  • 你是妈妈!/Είσαιημάνα! (2认同)