Android BLE GATT多重写 - WriteCharacteristics失败

时间:2015-12-30 05:29:46

标签: android gatt bluetooth-lowenergy

我正在尝试使用在目标上成功收到的打击代码来写入数据。

boolean status = mBluetoothGatt.writeCharacteristic(characteristic);

byte[] value = new byte[1];
            value[0] = (byte)inputvalue;
            characteristic.setValue(value);

            if (value.length <20){
                boolean status = mBluetoothGatt.writeCharacteristic(characteristic);
                Log.d("send Status ******-  : ", String.valueOf(status));
            }

但是,当我尝试写入时,多次都无法发送数据。 也尝试发送2秒延迟然后,它工作正常。 我该怎么做才能延迟

1 个答案:

答案 0 :(得分:1)

Android上的BLE是异步的,而且非常难以使用。通常,您必须等待第一个GATT操作完成才能执行后续GATT操作(这就是为什么它在您添加延迟时有效)。

我建议你从Nordic半导体公司查看这个项目,其中包括一个很好的队列处理器,可以使BLE易于管理。 https://github.com/NordicSemiconductor/puck-central-android