From f889b44788085f5c40c7923729913762ba9460b7 Mon Sep 17 00:00:00 2001 From: Alex Blasche Date: Wed, 5 Oct 2016 14:36:45 +0200 Subject: Connect QtBluetoothLEServer class to Qt's QLowEnergyController API Change-Id: I4403a9d5c79fae2c6bbe9c478660ead01dc16fe4 Reviewed-by: Timur Pocheptsov Reviewed-by: Alex Blasche --- src/bluetooth/qlowenergycontroller_android.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/bluetooth/qlowenergycontroller_android.cpp') diff --git a/src/bluetooth/qlowenergycontroller_android.cpp b/src/bluetooth/qlowenergycontroller_android.cpp index 0ebe7564..cb49188c 100644 --- a/src/bluetooth/qlowenergycontroller_android.cpp +++ b/src/bluetooth/qlowenergycontroller_android.cpp @@ -56,6 +56,10 @@ QLowEnergyControllerPrivate::QLowEnergyControllerPrivate() QLowEnergyControllerPrivate::~QLowEnergyControllerPrivate() { + if (role == QLowEnergyController::PeripheralRole) { + if (hub) + hub->javaObject().callMethod("disconnectServer"); + } } void QLowEnergyControllerPrivate::init() @@ -630,12 +634,27 @@ void QLowEnergyControllerPrivate::startAdvertising(const QLowEnergyAdvertisingPa Q_UNUSED(params); Q_UNUSED(advertisingData); Q_UNUSED(scanResponseData); - qCWarning(QT_BT_ANDROID) << "LE advertising not implemented for Android"; + + setState(QLowEnergyController::AdvertisingState); + + if (!hub->javaObject().isValid()) { + qCWarning(QT_BT_ANDROID) << "Cannot initiate QtBluetoothLEServer"; + setError(QLowEnergyController::AdvertisingError); + setState(QLowEnergyController::UnconnectedState); + return; + } + + const bool result = hub->javaObject().callMethod("startAdvertising"); + if (!result) { + setError(QLowEnergyController::AdvertisingError); + setState(QLowEnergyController::UnconnectedState); + } } void QLowEnergyControllerPrivate::stopAdvertising() { - qCWarning(QT_BT_ANDROID) << "LE advertising not implemented for Android"; + setState(QLowEnergyController::UnconnectedState); + hub->javaObject().callMethod("stopAdvertising"); } void QLowEnergyControllerPrivate::requestConnectionUpdate(const QLowEnergyConnectionParameters ¶ms) -- cgit v1.2.3