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

时间:2015-09-04 02:53:02

标签: android bluetooth-lowenergy

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

但是当我向BLE设备写入连续的特性时(1秒内5次),当我尝试{{1时}时,我将获得GATT_DISCONNECTED并返回null }和getService

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:8)

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

  1. 您需要排队gatt读取和写入请求,以便在发出读取或写入请求时,必须等待BluetoothGattCallback中的相应回调,然后才能请求下一次读取或写入。这是Android BluetoothGatt行为,没有详细记录。
  2. 与上面的1.有些相关,你应该检查gatt读写请求的布尔返回值。如果它不返回true,那么您的请求失败。当您发出下一个请求时,某些其他gatt操作仍在进行中时会发生这种情况。
  3. 我发现快速读取(或写入)BLE特性的最佳方法是发出请求,等待回调并从回调中发出下一个请求。如果有更快或更可靠的方式,我不知道它。