2015-12-30 93 views
0

我正尝试使用打击代码写入数据,并成功接收目标。Android BLE GATT多写入 - 写入特性失败

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

Android上的BLE是异步的,并且非常难以使用。通常情况下,您必须等待第一个GATT操作完成,然后才能执行后续的GATT操作(这就是添加延迟时起作用的原因)。

我建议你从北欧半导体检测这个项目,其中包括一个漂亮的队列处理器,使BLE易于管理。 https://github.com/NordicSemiconductor/puck-central-android