Auf dieser Seite

Änderungen an Qt Bluetooth

Qt 6 sind das Ergebnis bewusster Bemühungen, das Framework effizienter und benutzerfreundlicher zu gestalten.

Wir bemühen uns, bei jeder Version die Binär- und Quellkompatibilität für alle öffentlichen APIs aufrechtzuerhalten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.

In diesem Abschnitt fassen wir diese Änderungen in „ QtBluetooth “ zusammen und geben Hinweise zu deren Handhabung.

Allgemeines

  • „qbluetoothglobal.h“ wurde entfernt. „qtbluetoothglobal.h“ ist der offizielle Header mit demselben Zweck.
  • Jede Verwendung von „ QVector “ wurde durch „ QList “ ersetzt.
  • Das Win32-Backend wurde entfernt. Es gibt kein funktionierendes Bluetooth-Backend mehr, wenn Qt mit mingw kompiliert wird.
  • Da es nun nur noch ein Windows-Backend gibt, wurde die Protokollierungskategorie „qt.bluetooth.winrt“ entfernt. Die entsprechenden Protokollmeldungen befinden sich nun in „qt.bluetooth.windows“.

QBluetooth-Namespace

Die Enums „ QBluetooth::Security “ und „ QBluetooth::AttAccessConstraint “ wurden zur Verbesserung der Typsicherheit in bereichsbezogene Enums umgewandelt.

QBluetoothDeviceDiscoveryAgent

Die Eigenschaft „QBluetoothDeviceDiscoveryAgent::inquiryType“ sowie die zugehörigen Setter/Getter und die Enumeration wurden entfernt. Dieses API-Element wurde nie implementiert und/oder unterstützt.

QBluetoothDeviceInfo

  • „manufacturerData()“ gibt nun eine „ QMultiHash “ anstelle einer „ QHash “ zurück. Seit Qt 6 leitet sich „ QMultiHash “ nicht mehr von „ QHash “ ab.
  • „DataCompleteness“ wurde ohne Ersatz entfernt, da die zugehörigen API-Elemente keinen Zweck mehr erfüllten
  • setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness) wurde durch setServiceUuids(const QList<QBluetoothUuid> &uuids) ersetzt
  • DataCompleteness serviceUuidsCompleteness() const wurde ohne Ersatz entfernt.
  • QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const wurde durch QList<QBluetoothUuid> serviceUuids() const ersetzt.

QBluetoothLocalDevice

Die API im Zusammenhang mit dem Pairing-Agent wurde ohne Ersatz entfernt. Dazu gehören „pairingConfirmation(bool)“, „pairingDisplayPinCode(..)“ und „pairingDisplayConfirmation(..)“. Mit Ausnahme von Android und BlueZ 4 gab es hierfür nie eine Implementierung. Die Unterstützung für BlueZ 4 wurde in Qt 6 entfernt, und die Android-Implementierung erforderte für zumindest Teile des Codes das nicht erhältliche BLUETOOTH_PRIVILEGED.

QLowEnergyService

Umbenannte Werte der „ServiceState“-Enumeration:

Diese Änderung erfolgt in Erwartung, dass die Dienstermittlung in Zukunft möglicherweise zu einem optionalen Schritt wird.

QBluetoothUuid

Die Enums „ ProtocolUuid “, „ ServiceClassUuid “, „ CharacteristicType “ und „ DescriptorType “ sind nun scoped Enums. Die Verwendung der Enum-Elemente muss im Anwendercode angepasst werden.

QLowEnergyController

  • Bestehende Konstruktoren und create*()-Funktionen mit „remote QBluetoothAddress “-Parametern wurden entfernt. „ QBluetoothAddress “ reicht auf Apple-Systemen nicht aus, um Remote-Geräte anzugeben. Dort sind UUIDs erforderlich, um Geräte zu „benennen“. Dies kann nur durch „ QBluetoothDeviceInfo “ erfüllt werden.
  • Die verbleibenden Konstruktoren von „ QLowEnergyController “ wurden auf „private“ gesetzt. Zur Erlangung von „ QLowEnergyController “-Instanzen sollten die Funktionen „createPeripheral()“ und „createCentral()“ verwendet werden.

QLowEnergyCharacteristic

  • Die neue Methode `clientCharacteristicConfiguration()` wurde eingeführt, um den Client-Charakteristik-Konfigurationsdeskriptor bequem abzurufen.
  • Es wurden die Konstanten „ CCCDDisable “, „ CCCDEnableNotification “ und „ CCCDEnableIndication “ eingeführt, die die möglichen Werte für den Client-Charakteristik-Konfigurationsdeskriptor enthalten.
  • Die Methode `handle()` ist nicht mehr Teil der öffentlichen Bluetooth-LE-Schnittstellen. Ihre Funktion als Identifikator für Merkmale wurde ersetzt. Die ` QLowEnergyCharacteristic `-Instanzen selbst dienen nun als Identifikator.

QLowEnergyDescriptor

Die Methode `handle()` ist nicht mehr Teil der öffentlichen Bluetooth-LE-Schnittstellen. Ihre Funktion als Identifikator für Deskriptoren wurde ersetzt. Die ` QLowEnergyDescriptor `-Instanzen selbst dienen nun als Identifikator.

QBluetoothTransferManager

QBluetoothTransferManager, QBluetoothTransferRequest und QBluetoothTransferReply wurden ohne Ersatz entfernt.

QBluetoothSocket

QBluetoothSocket::SocketState und „ QBluetoothSocket::SocketError “ sind nun in einem bestimmten Geltungsbereich definierte Enums. Die Verwendung der Enum-Elemente muss im Anwendercode angepasst werden.

QML-Schnittstelle

Die QML-Schnittstelle wurde entfernt, da die Socket-Programmierung über QML nicht empfehlenswert ist. QDeclarativeBluetoothService, QDeclarativeBluetoothSocket und QDeclarativeBluetoothDiscoveryModel (in QML: BluetoothService, BluetoothSocket und BluetoothDiscoveryModel) wurden ohne Ersatz entfernt.

„error“-Signale

Die „error“-Signale in QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer, QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController und QLowEnergyService wurden in „errorOccurred“ umbenannt, um Mehrdeutigkeiten zwischen dem „error“-Signal und dem „error“-Getter zu beseitigen.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.