summaryrefslogtreecommitdiff
path: root/src/bluetooth/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/android')
-rw-r--r--src/bluetooth/android/jni_android.cpp2
-rw-r--r--src/bluetooth/android/lowenergynotificationhub.cpp15
-rw-r--r--src/bluetooth/android/lowenergynotificationhub_p.h3
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: