Разрешение другим устройствам правильно подписываться на BLE-характеристику c - PullRequest
0 голосов
/ 27 мая 2020

Я делаю приложение, которое действует как сервер Gatt. У этого сервера есть несколько характеристик, и я хочу, чтобы другие подключенные телефоны могли подписаться на одну из этих характеристик. Я дал эту характеристику c, температура , следующий дескриптор:

private static final UUID descriptorUUID = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");

temperatureDescriptor = new BluetoothGattDescriptor(descriptorUUID, PERMISSION_READ | PERMISSION_WRITE);
temperatureDescriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);

, и когда я изменяю значение характеристики c, я также выполняю следующую строку:

bluetoothGattServer.notifyCharacteristicChanged(device, temperature, false);

, но это не устранило проблему - другие устройства говорят, что они подписались, и получают уведомление с надписью «@@», но сервер Gatt, похоже, после этого сильно глючит и полностью перестает работать. Есть ли что-то, что я пропустил, что мне нужно сделать, чтобы другие устройства правильно подписались на эту характеристику c?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...