diff options
author | Andreas Buhr <andreas.buhr@qt.io> | 2021-11-25 14:38:51 +0100 |
---|---|---|
committer | Andreas Buhr <andreas.buhr@qt.io> | 2021-11-29 12:02:21 +0100 |
commit | 212b29f16b24a156e1c8132772ddc6c3bcbc1165 (patch) | |
tree | d25f4803ec460d428e75d957b5fc88da4a933a6d /src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp | |
parent | 895524df71711a07115c638178b9f18638259b56 (diff) |
Add support for service data in BLE advertisment
This patch adds support for "service data" in BTLE
advertisements.
Fixes: QTBUG-95118
Change-Id: I11f1f3d0295cb03eaa773b84a423227a28f47c43
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
Diffstat (limited to 'src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp')
-rw-r--r-- | src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp index 471f6a62..f509f649 100644 --- a/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp +++ b/src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp @@ -276,11 +276,18 @@ static QBluetoothDeviceInfo createDeviceInfoFromBluez5Device(const QVariantMap& } const ManufacturerDataList deviceManufacturerData = qdbus_cast<ManufacturerDataList>(properties[QStringLiteral("ManufacturerData")]); - const QList<quint16> keys = deviceManufacturerData.keys(); - for (quint16 key : keys) + const QList<quint16> keysManufacturer = deviceManufacturerData.keys(); + for (quint16 key : keysManufacturer) deviceInfo.setManufacturerData( key, deviceManufacturerData.value(key).variant().toByteArray()); + const ServiceDataList deviceServiceData = + qdbus_cast<ServiceDataList>(properties[QStringLiteral("ServiceData")]); + const QList<QString> keysService = deviceServiceData.keys(); + for (QString key : keysService) + deviceInfo.setServiceData(QBluetoothUuid(key), + deviceServiceData.value(key).variant().toByteArray()); + return deviceInfo; } @@ -305,7 +312,8 @@ void QBluetoothDeviceDiscoveryAgentPrivate::deviceFound(const QString &devicePat << "Num UUIDs" << deviceInfo.serviceUuids().count() << "total device" << discoveredDevices.count() << "cached" << "RSSI" << deviceInfo.rssi() - << "Num ManufacturerData" << deviceInfo.manufacturerData().size(); + << "Num ManufacturerData" << deviceInfo.manufacturerData().size() + << "Num ServiceData" << deviceInfo.serviceData().size(); // Cache the properties so we do not have to access dbus every time to get a value devicesProperties[devicePath] = properties; |