我正在尝试使用在目标上成功收到的打击代码来写入数据。
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秒延迟然后,它工作正常。 我该怎么做才能延迟
答案 0 :(得分:1)
Android上的BLE是异步的,而且非常难以使用。通常,您必须等待第一个GATT操作完成才能执行后续GATT操作(这就是为什么它在您添加延迟时有效)。
我建议你从Nordic半导体公司查看这个项目,其中包括一个很好的队列处理器,可以使BLE易于管理。 https://github.com/NordicSemiconductor/puck-central-android