После того, как Уведомление включено с
BluetoothGatt gatt= leBluetoothService.getmBluetoothGatt();
gatt.setCharacteristicNotification(chracteristicId, enable);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
BluetoothGattDescriptor descriptor = chracteristicId.getDescriptor(
UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
gatt.writeDescriptor(descriptor);
Я не смог прочитать данные из любой другой характеристики.Замораживает все характеристики.почему это так?и после того, как Уведомление включено, оно также не считывает данные из этой характеристики.
Редактировать:
после вызова установленного уведомления все чтение и уведомление начинает накапливаться вместо его выполнения.Я использовал синхронизированный статический метод для каждой операции.
public static void AddOperation(Operation opr) {
operations.add(opr) ;
Log.d("operations",String.valueOf(operations.size()));
if (currentOperation ==null){
currentOperation = opr;
request(opr);
}
}
private static synchronized void request(Operation operation) {
Log.d("kala", ""+operation);
operation.execute();
}
public static synchronized void operationCompleted() {
currentOperation = null;
if (operations.peek() != null) {
currentOperation = operations.poll();
Log.d("kalaa", ""+currentOperation);
currentOperation.execute();
}
}
все операции чтения работают хорошо, но если свойство имеет свойство уведомления, операции начинают накапливаться.Есть ли способ увидеть, когда уведомление установлено?