diff options
-rw-r--r-- | src/bluetooth/qlowenergycontroller_bluez.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp index b37ae4ad..436b3a43 100644 --- a/src/bluetooth/qlowenergycontroller_bluez.cpp +++ b/src/bluetooth/qlowenergycontroller_bluez.cpp @@ -868,7 +868,14 @@ void QLowEnergyControllerPrivate::processReply( Q_ASSERT(!p.isNull()); if (isErrorResponse) { - readServiceValues(p->uuid, false); //read descriptor values + if (keys.count() == 1) { + // no more descriptors to discover + readServiceValues(p->uuid, false); //read descriptor values + } else { + // hop to the next descriptor + keys.removeFirst(); + discoverNextDescriptor(p, keys, keys.first()); + } break; } |