BLE:如何发送写请求而不是写命令?
BLE: How to send Write Request instead of Write Command?
我正在尝试从智能手机(Android 应用程序)向蓝牙低功耗 (BLE) 设备发送数据包
我知道如何发送写入命令:
像这样:
public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
List<BluetoothGattService> services = gatt.getServices();
for (BluetoothGattService service : services) {
for (final BluetoothGattCharacteristic characteristic : service.getCharacteristics()) {
if (characteristic.getUuid().toString().equals(CONTROL_UUID)) {
boolean setValue = characteristic.setValue(new byte[]{/*..BYTES.*/});
boolean writeCharacteristic = gatt.writeCharacteristic(characteristic);
}
}
}
}
当我在 Wireshark(嗅探应用程序)中看到这个发送的命令时,我看到类似这样的东西
但我还需要发送这样的东西(不是写命令,而是写请求)
控制设备的官方应用程序发送此写入请求仅在连接后发送一次
好像没有它我将无法控制那个设备
所以在我发送任何写入命令之前,我需要先发送这个写入请求
我正在尝试从智能手机(Android 应用程序)向蓝牙低功耗 (BLE) 设备发送数据包
我知道如何发送写入命令:
像这样:
public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
List<BluetoothGattService> services = gatt.getServices();
for (BluetoothGattService service : services) {
for (final BluetoothGattCharacteristic characteristic : service.getCharacteristics()) {
if (characteristic.getUuid().toString().equals(CONTROL_UUID)) {
boolean setValue = characteristic.setValue(new byte[]{/*..BYTES.*/});
boolean writeCharacteristic = gatt.writeCharacteristic(characteristic);
}
}
}
}
当我在 Wireshark(嗅探应用程序)中看到这个发送的命令时,我看到类似这样的东西
但我还需要发送这样的东西(不是写命令,而是写请求)
控制设备的官方应用程序发送此写入请求仅在连接后发送一次
好像没有它我将无法控制那个设备
所以在我发送任何写入命令之前,我需要先发送这个写入请求