Android BLE同时在多个BLE h / w上写入数据

时间:2014-12-08 11:08:57

标签: android bluetooth-lowenergy

我正在开发一个Android应用程序,我正在使用android BLE api连接到传感器设备。事情进展顺利但是我用我的Android应用程序连接4个BLE h / w设备但是当我尝试写一些数据时所有4个BLe设备同时只在一台设备上写入数据,我不能同时在所有设备上写入数据。

以下是我在单个BLE设备上写入数据的代码:

if(btWriteGattChar == null)
            return;
        btWriteGattChar.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
        btWriteGattChar.setValue(dat);
        mBluetoothGatt[tabIndex].writeCharacteristic(btWriteGattChar);

以上代码适用于单个BLE设备,但不允许我在所有其他设备上写入相同的数据。

请告诉我在多个BLE设备上写入相同数据的错误步骤。

1 个答案:

答案 0 :(得分:0)

不,你不能这样做。文档中没有说明,但所有BLE操作实际上都是同步的。

api本身是异步的,但是BLE堆栈只能逐个执行。 例如,在调用writeCharacteristic之后,在将其写入另一个设备/特性之前必须等待onCharacteristicWrite,否则您将得到未定义的行为。如果您不等待回调,则可能会或可能不会写出后续特征。

至少4.4.4这是真的。不过,我没有检查这是否在5.0以后修复​​。无论如何,如果你的应用程序支持5.0之前的操作系统版本,你必须考虑到这一点。