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(嗅探应用程序)中看到这个发送的命令时,我看到类似这样的东西

但我还需要发送这样的东西(不是写命令,而是写请求

控制设备的官方应用程序发送此写入请求仅在连接后发送一次

好像没有它我将无法控制那个设备

所以在我发送任何写入命令之前,我需要先发送这个写入请求

https://developer.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html#setWriteType(int)

您需要使用WRITE_TYPE_DEFAULT