diff options
author | Alex Blasche <alexander.blasche@theqtcompany.com> | 2014-11-11 13:27:55 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@theqtcompany.com> | 2014-11-12 15:59:16 +0100 |
commit | 2f4269da610083795440545c7f191eea1c9c3c4c (patch) | |
tree | 119c6318b7678191af94f8aa1fc72e4572459ebe /src/bluetooth/android/lowenergynotificationhub.cpp | |
parent | 51dbe4a457c0bf81b96c898aab5d83b421e7a4f0 (diff) |
Support for QLEService::writeCharacteristic() on Android
Currently only the WriteWithResponse mode works and has been tested.
Change-Id: I7947b67f737f5878a01704c09d3a9a532a41b820
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/bluetooth/android/lowenergynotificationhub.cpp')
-rw-r--r-- | src/bluetooth/android/lowenergynotificationhub.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/bluetooth/android/lowenergynotificationhub.cpp b/src/bluetooth/android/lowenergynotificationhub.cpp index 30b69edc..4995dc0e 100644 --- a/src/bluetooth/android/lowenergynotificationhub.cpp +++ b/src/bluetooth/android/lowenergynotificationhub.cpp @@ -210,4 +210,29 @@ void LowEnergyNotificationHub::lowEnergy_descriptorRead( Q_ARG(QByteArray, payload)); } +void LowEnergyNotificationHub::lowEnergy_characteristicWritten( + JNIEnv *env, jobject, jlong qtObject, jint charHandle, + jbyteArray data, jint errorCode) +{ + lock.lockForRead(); + LowEnergyNotificationHub *hub = hubMap()->value(qtObject); + lock.unlock(); + if (!hub) + return; + + QByteArray payload; + if (data) { //empty Java byte array is 0x0 + jsize length = env->GetArrayLength(data); + payload.resize(length); + env->GetByteArrayRegion(data, 0, length, + reinterpret_cast<signed char*>(payload.data())); + } + + QMetaObject::invokeMethod(hub, "characteristicWritten", Qt::QueuedConnection, + Q_ARG(int, charHandle), + Q_ARG(QByteArray, payload), + Q_ARG(QLowEnergyService::ServiceError, + (QLowEnergyService::ServiceError)errorCode)); +} + QT_END_NAMESPACE |