Я делаю приложение, которое действует как сервер 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?