Qt Bluetooth
L'API Bluetooth assure la connectivité entre les appareils compatibles Bluetooth.
Actuellement, l'API est prise en charge sur les plateformes suivantes :
| Fonctionnalité de l'API | Android | iOS | Linux (BlueZ 5.x) | macOS | Windows |
|---|---|---|---|---|---|
| Bluetooth classique | x | x | x | x | |
| Bluetooth LE Central | x | x | x | x | x |
| Périphérique Bluetooth LE | x | x | x | x |
Vue d'ensemble
Bluetooth est une technologie sans fil à courte portée (moins de 100 mètres). Son taux de transfert de données est de 2,1 Mbps, ce qui la rend idéale pour le transfert de données entre appareils. La connectivité Bluetooth repose sur une gestion de base des appareils, comme la recherche d'appareils, la collecte d'informations à leur sujet et l'échange de données entre eux.
Qt Bluetooth La technologie Bluetooth Low Energy prend en charge le développement de la technologie Bluetooth Low Energy pour les cas d'utilisation du rôle client/central. Pour plus de détails, voir la section Bluetooth Low Energy Overview.
Utilisation du module
L'utilisation de l'API C++ d'un module Qt nécessite l'établissement d'un lien avec la bibliothèque du module, soit directement, soit par l'intermédiaire d'autres dépendances. Plusieurs outils de construction disposent d'un support dédié à cet effet, notamment CMake et qmake.
Construction avec CMake
Utilisez la commande find_package() pour localiser le composant de module nécessaire dans le paquetage Qt6:
find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)Pour plus de détails, voir l'aperçu de la construction avec CMake.
Construction avec qmake
Pour configurer le module afin qu'il soit construit avec qmake, ajoutez le module comme valeur de la variable QT dans le fichier .pro du projet :
QT += bluetooth
Permissions
À partir de Qt 6.6, le module Qt Bluetooth utilise la nouvelle API QPermission pour gérer les permissions Bluetooth. Cela signifie que Qt lui-même ne demande plus ces permissions, ce qui doit être fait directement à partir de l'application cliente.
Veuillez vous référer à la page Permissions de l'application pour un exemple d'intégration de la nouvelle API QPermission dans l'application.
Informations connexes
Construction Qt Bluetooth
Même si le module peut être construit pour toutes les plateformes Qt, il n'est pas porté sur toutes. Les plateformes non prises en charge utilisent un backend factice qui est automatiquement sélectionné lorsque la plateforme n'est pas prise en charge. Le backend fictif signale les messages d'erreur et les valeurs appropriés, ce qui vous permet de détecter au moment de l'exécution que la plate-forme actuelle n'est pas prise en charge. Le backend factice est également sélectionné sous Linux si les en-têtes de développement BlueZ ne sont pas trouvés lors de la construction ou si Qt a été construit sans le support de Qt D-Bus.
L'utilisation du backend factice est mise en évidence par un avertissement approprié lors de la construction et de l'exécution.
Spécifique à Linux
Depuis Qt 6.5, le support des périphériques Linux a deux alternatives de backend : BlueZ DBus et Bluetooth Kernel API. Le backend DBus est le backend par défaut depuis Qt 6.7.
BlueZ DBus est la pile BlueZ la plus récente et peut-être le successeur éventuel de l'ancienne API du noyau. Il est un peu plus limité en termes de fonctionnalités, mais dans le cadre d'une utilisation normale, cela ne devrait pas avoir d'importance. Un avantage notable de l'utilisation du backend DBus est que le processus utilisateur n'a plus besoin d'avoir la capacité CAP_NET_ADMIN (par exemple en s'exécutant en tant qu'utilisateur root ).
Le backend DBus nécessite BlueZ version 5.56 ou supérieure, et qu'il fournisse les API DBus nécessaires. Si ces conditions ne sont pas remplies, Qt se rabat automatiquement sur l'API du noyau Bluetooth.
L'ancien noyau peut également être sélectionné manuellement en définissant la variable d'environnement QT_BLUETOOTH_USE_KERNEL_PERIPHERAL.
Spécifique à macOS
L'API Bluetooth sur macOS nécessite un certain type de distributeur d'événements qui, dans Qt Bluetooth, entraîne une dépendance à QGuiApplication... Cependant, vous pouvez définir la variable d'environnement QT_EVENT_DISPATCHER_CORE_FOUNDATION=1 pour contourner ce problème.
Les applications qui n'utilisent pas le Bluetooth classique trouveront un sous-ensemble de QtBluetooth, car CoreBluetooth (Bluetooth LE) ne nécessite pas QApplication ou QGuiApplication.
Articles et guides
Référence
Catégories d'enregistrement
Le module QtBluetooth exporte les catégories suivantes logging categories:
| Catégorie de journalisation | Description de la catégorie |
|---|---|
| qt.bluetooth | Active la journalisation du chemin de code multiplateforme dans QtBluetooth |
| qt.bluetooth.android | Active la journalisation de l'implémentation Android |
| qt.bluetooth.bluez | Active la journalisation de l'implémentation BLuez/Linux |
| qt.bluetooth.ios | Active la journalisation de l'implémentation iOS |
| qt.bluetooth.osx | Active la journalisation de l'implémentation macOS |
| qt.bluetooth.windows | Active la journalisation de l'implémentation Windows |
Les catégories de journalisation permettent d'ajouter des avertissements et des sorties de débogage pour QtBluetooth. Des informations plus détaillées sur la journalisation sont disponibles sur QLoggingCategory. Un moyen rapide d'activer toute la journalisation de QtBluetooth est d'ajouter la ligne suivante à la fonction main():
QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));
Exemples
- QML
- C++
Évolution des modules
Changes to Qt Bluetooth liste les changements importants dans l'API et les fonctionnalités du module qui ont été effectués pour la série Qt 6 de Qt.
Licences et attributions
Qt Bluetooth Qt est disponible sous licence commerciale auprès de The Qt Company. En outre, il est disponible sous la licence publique générale amoindrie de GNU, version 3, ou la licence publique générale de GNU, version 2. Voir Qt Licensing pour plus de détails.
Sous Linux, Qt Bluetooth utilise un exécutable séparé, sdpscanner, pour s'intégrer à la pile de protocoles Bluetooth officielle de Linux, BlueZ. BlueZ est disponible sous la licence publique générale GNU, version 2.
Licence publique générale GNU v2.0 uniquement (Cela n'oblige pas le code utilisateur à être sous licence GPL. Pour plus d'informations, voir les détails). |
© 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.