diff options
Diffstat (limited to 'src/bluetooth/android')
-rw-r--r-- | src/bluetooth/android/jni_android.cpp | 2 | ||||
-rw-r--r-- | src/bluetooth/android/lowenergynotificationhub.cpp | 15 | ||||
-rw-r--r-- | src/bluetooth/android/lowenergynotificationhub_p.h | 3 |
3 files changed, 20 insertions, 0 deletions
diff --git a/src/bluetooth/android/jni_android.cpp b/src/bluetooth/android/jni_android.cpp index 6a293a4e..5ae18161 100644 --- a/src/bluetooth/android/jni_android.cpp +++ b/src/bluetooth/android/jni_android.cpp @@ -203,6 +203,8 @@ static JNINativeMethod methods_le[] = { (void *) LowEnergyNotificationHub::lowEnergy_connectionChange}, {"leServicesDiscovered", "(JILjava/lang/String;)V", (void *) LowEnergyNotificationHub::lowEnergy_servicesDiscovered}, + {"leServiceDetailDiscoveryFinished", "(JLjava/lang/String;)V", + (void *) LowEnergyNotificationHub::lowEnergy_serviceDetailsDiscovered}, }; static JNINativeMethod methods_server[] = { diff --git a/src/bluetooth/android/lowenergynotificationhub.cpp b/src/bluetooth/android/lowenergynotificationhub.cpp index 56c3eec7..e009e5f7 100644 --- a/src/bluetooth/android/lowenergynotificationhub.cpp +++ b/src/bluetooth/android/lowenergynotificationhub.cpp @@ -122,4 +122,19 @@ void LowEnergyNotificationHub::lowEnergy_servicesDiscovered( Q_ARG(QString, uuids)); } +void LowEnergyNotificationHub::lowEnergy_serviceDetailsDiscovered( + JNIEnv *, jobject, jlong qtObject, jobject uuid) +{ + lock.lockForRead(); + LowEnergyNotificationHub *hub = hubMap()->value(qtObject); + lock.unlock(); + if (!hub) + return; + + const QString serviceUuid = QAndroidJniObject(uuid).toString(); + QMetaObject::invokeMethod(hub, "serviceDetailsDiscoveryFinished", + Qt::QueuedConnection, + Q_ARG(QString, serviceUuid)); +} + QT_END_NAMESPACE diff --git a/src/bluetooth/android/lowenergynotificationhub_p.h b/src/bluetooth/android/lowenergynotificationhub_p.h index 0cd3b02d..06c7b3ff 100644 --- a/src/bluetooth/android/lowenergynotificationhub_p.h +++ b/src/bluetooth/android/lowenergynotificationhub_p.h @@ -57,6 +57,8 @@ public: jint errorCode, jint newState); static void lowEnergy_servicesDiscovered(JNIEnv*, jobject, jlong qtObject, jint errorCode, jobject uuidList); + static void lowEnergy_serviceDetailsDiscovered(JNIEnv *, jobject, + jlong qtObject, jobject uuid); QAndroidJniObject javaObject() { @@ -67,6 +69,7 @@ signals: void connectionUpdated(QLowEnergyController::ControllerState newState, QLowEnergyController::Error errorCode); void servicesDiscovered(QLowEnergyController::Error errorCode, const QString &uuids); + void serviceDetailsDiscoveryFinished(const QString& serviceUuid); public slots: private: |