BLE: как отправить запрос на запись вместо команды записи?

Я пытаюсь отправить пакеты на устройство Bluetooth с низким энергопотреблением (BLE) со смартфона (приложение для Android)

Я знаю, как отправить команду записи:

что-то вроде этого:

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 (приложение для прослушивания), я вижу что-то вроде этого

введите здесь описание изображения

но мне также нужно отправить что-то вроде этого (не написать команду, а написать запрос)

введите здесь описание изображения

официальное приложение, которое контролирует, чтобы устройства отправляли этот запрос на запись только один раз после подключения

кажется без него я бы не смог управлять этим устройством

поэтому, прежде чем я отправлю какую-либо команду записи, мне нужно сначала отправить этот запрос на запись


person user25    schedule 26.06.2018    source источник


Ответы (1)


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

Вам нужно использовать WRITE_TYPE_DEFAULT.

person Emil    schedule 26.06.2018