Расширения используются, когда вы понимаете, что ваш прецедент слишком сложный. Таким образом, вы извлекаете сложные шаги в свои собственные «расширения».
Включается, когда вы видите общее поведение в двух случаях использования. Таким образом, вы абстрагируете общее поведение в отдельный «абстрактный» вариант использования.
(ref: Jeffrey L. Whitten, Lonnie D. Bentley, Systems analysis & amp; design methods, McGraw-Hill / Irwin, 2007 ) [/ д2]
Моя проблема была решена путем переопределения метода onDescriptorWrite. Я сделал флаг внутри, и если это правда, я продолжаю уведомлять все оставленные характеристики.
@Override public void onDescriptorWrite (BluetoothGatt gatt, дескриптор BluetoothGattDescriptor, int status) {String serviceUUID = descriptor.getCharacteristic (). GetService (). GetUuid (). ToString (); String serviceName = GattAttributes.lookupUUID (descriptor.getCharacteristic (). GetService (). GetUuid (), serviceUUID);
String characteristicUUID = descriptor.getCharacteristic().getUuid().toString();
String characteristicName = GattAttributes.lookupUUID(descriptor.getCharacteristic().getUuid(), characteristicUUID);
String descriptorUUID = descriptor.getUuid().toString();
String descriptorName = GattAttributes.lookupUUID(descriptor.getUuid(), descriptorUUID);
if (status == BluetoothGatt.GATT_SUCCESS) {
written = true;
numberLeft--;
} else {
written = true;
numberLeft--;
}
}