diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-04-17 03:00:47 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-04-17 03:00:47 +0200 |
commit | c7304d2c236be2e8902ea3df9c132fe5ac601ec4 (patch) | |
tree | fa389cb0d298f3dec429ad99dcad8b854eafe098 /src | |
parent | ab4d6d0ac06020a6ba0ef660172985b4e3e877d2 (diff) | |
parent | 8b334771babd64b1c7f47babcb5c4c449b9067a1 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Ib695b1c1e59904f65bf60f0fe9878483e608e737
Diffstat (limited to 'src')
3 files changed, 21 insertions, 2 deletions
diff --git a/src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLEServer.java b/src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLEServer.java index 00217904..034190fd 100644 --- a/src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLEServer.java +++ b/src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLEServer.java @@ -82,6 +82,12 @@ public class QtBluetoothLEServer { private BluetoothGattServer mGattServer = null; private BluetoothLeAdvertiser mLeAdvertiser = null; + private String mRemoteName = ""; + public String remoteName() { return mRemoteName; } + + private String mRemoteAddress = ""; + public String remoteAddress() { return mRemoteAddress; } + /* As per Bluetooth specification each connected device can have individual and persistent Client characteristic configurations (see Bluetooth Spec 5.0 Vol 3 Part G 3.3.3.3) @@ -238,6 +244,9 @@ public class QtBluetoothLEServer { break; } + mRemoteName = device.getName(); + mRemoteAddress = device.getAddress(); + int qtErrorCode; switch (status) { case BluetoothGatt.GATT_SUCCESS: diff --git a/src/bluetooth/qlowenergycontroller_android.cpp b/src/bluetooth/qlowenergycontroller_android.cpp index 70b6098b..c5c9ba56 100644 --- a/src/bluetooth/qlowenergycontroller_android.cpp +++ b/src/bluetooth/qlowenergycontroller_android.cpp @@ -430,9 +430,15 @@ void QLowEnergyControllerPrivateAndroid::peripheralConnectionUpdated( Q_Q(QLowEnergyController); if (oldState == QLowEnergyController::ConnectedState && newState != QLowEnergyController::ConnectedState) { + remoteDevice.clear(); + remoteName.clear(); emit q->disconnected(); } else if (newState == QLowEnergyController::ConnectedState && oldState != QLowEnergyController::ConnectedState) { + if (hub) { + remoteDevice = QBluetoothAddress(hub->javaObject().callObjectMethod<jstring>("remoteAddress").toString()); + remoteName = hub->javaObject().callObjectMethod<jstring>("remoteName").toString(); + } emit q->connected(); } } diff --git a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp index e9087642..afc4b8c1 100644 --- a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp +++ b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp @@ -537,8 +537,12 @@ void QLowEnergyControllerPrivateBluezDBus::discoverServiceDetails(const QBluetoo serviceData->endHandle = runningHandle++; // last job is last step of service discovery - GattJob &lastJob = jobs.last(); - lastJob.flags.setFlag(GattJob::LastServiceDiscovery, true); + if (!jobs.isEmpty()) { + GattJob &lastJob = jobs.last(); + lastJob.flags.setFlag(GattJob::LastServiceDiscovery, true); + } else { + serviceData->setState(QLowEnergyService::ServiceDiscovered); + } scheduleNextJob(); } |