Android BLE:onCharacteristicChanged 在 onCharacteristicWrite 之前在 writeCharacteristic 之后触发
Android BLE : onCharacteristicChanged triggers before onCharacteristicWrite after writeCharacteristic
成功连接后,我正在使用 DefaultWriteType 编写一个特性。
紧接着 onCharacteristicChanged
触发器,然后 onCharacteristicWrite
触发器具有相同的特征 UUID,该 UUID 已写入但值作为响应出现,因为特征与 onCharacteristicChanged
的响应相同。
总结:
onCharacteristicChanged 如何在 onCharacteristicWrite 之前触发?
据我所知,onCharacteristicWrite 指示您的写入操作是否成功。
onCharacteristicChanged responds/notify 到我们写入 ble 设备的命令。
这有可能吗,或者它是否会脱离 Ble 循环?
我认为这是意料之中的。
因为onCharacteristicWrite
只是表示,你的写操作成功与否。
一个BluetoothGattCharacteristic
只能保存一个值,即最后发送或接收的值。
两个操作都使用相同的 BluetoothGattCharacteristic
实例。
因此,关于您描述的序列,"normal" 您在两个回调中具有相同的值。由于上次操作您的特性中的 value
是 BLE 通知。
我认为这不是最好的主意,它是如何在 BLE 堆栈中实现的。如果操作互不干扰,多idempotent/immutable就更好了。
成功连接后,我正在使用 DefaultWriteType 编写一个特性。
紧接着 onCharacteristicChanged
触发器,然后 onCharacteristicWrite
触发器具有相同的特征 UUID,该 UUID 已写入但值作为响应出现,因为特征与 onCharacteristicChanged
的响应相同。
总结:
onCharacteristicChanged 如何在 onCharacteristicWrite 之前触发?
据我所知,onCharacteristicWrite 指示您的写入操作是否成功。 onCharacteristicChanged responds/notify 到我们写入 ble 设备的命令。
这有可能吗,或者它是否会脱离 Ble 循环?
我认为这是意料之中的。
因为
onCharacteristicWrite
只是表示,你的写操作成功与否。一个
BluetoothGattCharacteristic
只能保存一个值,即最后发送或接收的值。两个操作都使用相同的
BluetoothGattCharacteristic
实例。
因此,关于您描述的序列,"normal" 您在两个回调中具有相同的值。由于上次操作您的特性中的 value
是 BLE 通知。
我认为这不是最好的主意,它是如何在 BLE 堆栈中实现的。如果操作互不干扰,多idempotent/immutable就更好了。