BLE: Как отправить запрос на запись вместо команды записи? - PullRequest
0 голосов
/ 26 июня 2018

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

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

как то так:

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

enter image description here

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

enter image description here

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

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

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

1 Ответ

0 голосов
/ 26 июня 2018

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

Вам необходимо использовать WRITE_TYPE_DEFAULT.

...