从文档中,我看到了如何在没有响应的情况下这样写:

BluetoothGattCharacteristic characteristic = ...
characteristic.setValue(bytes);
mBluetoothGatt.writeCharacteristic(characteristic);

如何执行带有响应的写请求操作?

(在iOS中,可以选择写入类型CBCharacteristicWriteWithResponse和CBCharacteristicWriteWithoutResponse)

最佳答案

  • 您的特征应该是可写的。

  • 检查特征是否可写:
    (characteristic.getProperties() & (BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE))) != 0
    
  • BluetoothGatt.writeCharacteristic()返回布尔值标志,指示写入是否成功(如果成功,则为true)。
  • 一旦BluetoothGatt.writeCharacteristic成功,将使用具有您指定的值的特征执行BluetoothGattCallback.onCharacteristicWrite()回调。
  • 10-05 18:49