summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-04-17 03:00:47 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-04-17 03:00:47 +0200
commitc7304d2c236be2e8902ea3df9c132fe5ac601ec4 (patch)
treefa389cb0d298f3dec429ad99dcad8b854eafe098 /src
parentab4d6d0ac06020a6ba0ef660172985b4e3e877d2 (diff)
parent8b334771babd64b1c7f47babcb5c4c449b9067a1 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'src')
-rw-r--r--src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLEServer.java9
-rw-r--r--src/bluetooth/qlowenergycontroller_android.cpp6
-rw-r--r--src/bluetooth/qlowenergycontroller_bluezdbus.cpp8
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();
}