在Android的BLE API(BluetoothGatt)中,有一些处理可靠方法的方法:

public boolean beginReliableWrite ()

public void abortReliableWrite (BluetoothDevice mDevice)

public boolean executeReliableWrite ()

也有一个回调(在BluetoothGattCallback中):
public void onReliableWriteCompleted (BluetoothGatt gatt, int status)

我找不到任何文档。它是什么?与“正常”(不可靠?)的写法有何不同?

最佳答案

可靠的写操作可以检查回传的值以及一个或多个消息的原子执行。

可以在BLE part of Mozillas Boot 2 Gecko Project documentation中找到有关可靠写入过程的很好的解释。即使对于JavaScript来说,beginReliableWrite()的描述对于理解过程也非常有帮助:



您开始可靠的写入,

gatt.beginReliableWrite();

设置特征值并写入。
characteristic.setValue(value);
gatt.writeCharacteristic(characteristic);
writeCharacteristic()调用将触发其“正常”回调。参数characteristic包含可以验证的实际写入值:
@Override
public void onCharacteristicWrite(BluetoothGatt gatt,
                BluetoothGattCharacteristic characteristic,
                int status) {
    ...

    if(characteristic.getValue() != value) {
        gatt.abortReliableWrite();
    } else {
        gatt.executeReliableWrite();
    }

    ...
}

执行可靠的写入将触发onReliableWriteCompleted(BluetoothGatt gatt, int status)回调。

关于android - BLE中的 “reliable write”是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24485536/

10-12 05:01