Sur cette page

QBluetoothLocalDevice Class

La classe QBluetoothLocalDevice permet d'accéder au périphérique Bluetooth local. En savoir plus...

En-tête : #include <QBluetoothLocalDevice>
CMake : find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)
qmake : QT += bluetooth
Hérite de : QObject

Types publics

enum Error { NoError, PairingError, MissingPermissionsError, UnknownError }
enum HostMode { HostPoweredOff, HostConnectable, HostDiscoverable, HostDiscoverableLimitedInquiry }
enum Pairing { Unpaired, Paired, AuthorizedPaired }

Fonctions publiques

QBluetoothLocalDevice(QObject *parent = nullptr)
QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)
virtual ~QBluetoothLocalDevice()
QBluetoothAddress address() const
QList<QBluetoothAddress> connectedDevices() const
QBluetoothLocalDevice::HostMode hostMode() const
bool isValid() const
QString name() const
QBluetoothLocalDevice::Pairing pairingStatus(const QBluetoothAddress &address) const
void powerOn()
void requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)
void setHostMode(QBluetoothLocalDevice::HostMode mode)

Signaux

void deviceConnected(const QBluetoothAddress &address)
void deviceDisconnected(const QBluetoothAddress &address)
(since 6.2) void errorOccurred(QBluetoothLocalDevice::Error error)
void hostModeStateChanged(QBluetoothLocalDevice::HostMode state)
void pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

Membres publics statiques

QList<QBluetoothHostInfo> allDevices()

Description détaillée

QBluetoothLocalDevice fournit des fonctions permettant d’obtenir et de définir l’état des périphériques Bluetooth locaux.

Sous iOS, cette classe ne peut pas être utilisée car la plateforme n'expose aucune donnée ni API susceptible de fournir des informations sur le périphérique Bluetooth local.

Documentation sur les types de membres

enum QBluetoothLocalDevice::Error

Cette énumération décrit les erreurs pouvant être renvoyées

ConstanteValeurDescription
QBluetoothLocalDevice::NoError0Aucune erreur connue
QBluetoothLocalDevice::PairingError1Erreur lors de l'appairage
QBluetoothLocalDevice::MissingPermissionsError (since Qt 6.4)2Le système d'exploitation demande des autorisations qui n'ont pas été accordées par l'utilisateur.
QBluetoothLocalDevice::UnknownError100Erreur inconnue

enum QBluetoothLocalDevice::HostMode

Cette énumération décrit la plupart des périphériques Bluetooth locaux.

ConstanteValeurDescription
QBluetoothLocalDevice::HostPoweredOff0Mettre le périphérique hors tension
QBluetoothLocalDevice::HostConnectable1Les appareils Bluetooth distants peuvent se connecter à l'appareil Bluetooth local s'ils ont déjà été appairés avec celui-ci ou s'ils connaissent son adresse. Cela met l'appareil sous tension s'il était éteint.
QBluetoothLocalDevice::HostDiscoverable2Les appareils Bluetooth distants peuvent détecter la présence de l’appareil Bluetooth local. L’appareil sera également connectable et sous tension. Sous Android, ce mode ne peut rester actif que pendant 5 minutes au maximum.
QBluetoothLocalDevice::HostDiscoverableLimitedInquiry3Les appareils Bluetooth distants peuvent détecter la présence de l'appareil Bluetooth local lorsqu'ils effectuent une requête limitée. Cette fonctionnalité doit être utilisée pour les services de localisation qui ne sont détectables que pendant une durée limitée. Cela peut accélérer la détection entre les appareils de jeu, car la détection des services peut être ignorée sur les appareils qui ne sont pas en mode LimitedInquiry. Dans ce mode, l'appareil sera connectable et sous tension, si nécessaire. Ce mode n'est pas pris en charge sous Android.

Remarque : sous macOS, il n’est pas possible de définir la variable d’environnement ` hostMode()`. Les modes hôte signalés sont limités à `HostPoweredOff` et `HostConnectable`.

Remarque : sous Windows, il n’est pas possible de définir la propriété ` hostMode` () sur `HostDiscoverable` ou `HostDiscoverableLimitedInquiry`. L’utilisation de ces modes équivaut à `HostConnectable`.

Remarque : à partir d’Android 13 (niveau d’API 33), l’état HostPoweredOff s’appuie sur une API Android non publique, l’API publique ayant été dépréciée (voir (disable())). Cela pourrait changer dans une future version d’Android.

Remarque : au moins sous Android 12, le paramètre de visibilité Bluetooth de l'appareil peut influencer le résultat de la configuration de HostDiscoverable ou de HostConnectable. Par exemple, si la visibilité est désactivée, il peut s'avérer impossible de passer en mode HostDiscoverable ; le mode HostConnectable sera alors utilisé à la place. Cela pourrait changer dans une future version d'Android.

enum QBluetoothLocalDevice::Pairing

Cette énumération décrit l'état d'appairage entre les deux appareils Bluetooth.

ConstanteValeurDescription
QBluetoothLocalDevice::Unpaired0Les appareils Bluetooth ne sont pas appairés.
QBluetoothLocalDevice::Paired1Les appareils Bluetooth sont appairés. Le système demandera à l'utilisateur de valider la connexion lorsque l'appareil distant tentera de se connecter à l'appareil local.
QBluetoothLocalDevice::AuthorizedPaired2Les appareils Bluetooth sont appairés. Le système ne demandera pas d’autorisation à l’utilisateur lorsque l’appareil distant initie une connexion avec l’appareil local.

Documentation des fonctions membres

[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(QObject *parent = nullptr)

Construit un objet `QBluetoothLocalDevice` avec ` parent`.

Remarque : à partir d'Android 12 (niveau d'API 31), la création de cette classe nécessite des autorisations d'exécution Bluetooth (BLUETOOTH_SCAN et BLUETOOTH_CONNECT). Si ces autorisations ne sont pas accordées, l'objet ne sera pas valide.

Voir également isValid().

[explicit] QBluetoothLocalDevice::QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0)

Construisez un nouvel objet `QBluetoothLocalDevice` pour ` address`. Si ` address ` est instancié par défaut, le périphérique local résultant sélectionne le périphérique local par défaut.

Remarque : à partir d'Android 12 (niveau d'API 31), la création de cette classe nécessite des autorisations d'exécution Bluetooth (BLUETOOTH_SCAN et BLUETOOTH_CONNECT). Si ces autorisations ne sont pas accordées, le périphérique ne sera pas valide.

Voir également isValid().

[virtual noexcept] QBluetoothLocalDevice::~QBluetoothLocalDevice()

Supprime l'QBluetoothLocalDevice.

QBluetoothAddress QBluetoothLocalDevice::address() const

Renvoie l'adresse MAC de ce périphérique Bluetooth.

Remarque : sous Android, à partir de la version 6.0, cette fonction renvoie systématiquement la valeur constante « 02:00:00:00:00:00 » comme adresse locale. L'accès programmatique à l'adresse MAC locale du périphérique a été supprimé.

[static] QList<QBluetoothHostInfo> QBluetoothLocalDevice::allDevices()

Renvoie une liste de tous les périphériques Bluetooth locaux disponibles. Sous macOS, il n'existe qu'un seul périphérique local, le « périphérique par défaut ».

QList<QBluetoothAddress> QBluetoothLocalDevice::connectedDevices() const

Renvoie la liste des appareils connectés. Cette liste est différente de celle des appareils actuellement appairés.

Sous Android et macOS, il n'est pas possible de récupérer la liste des appareils connectés. Il est uniquement possible de surveiller les changements de connexion et de déconnexion. Pour plus de commodité, cette classe surveille tous les événements de connexion et de déconnexion depuis sa création et renvoie la liste actuelle lors de l'appel de cette fonction. Il est donc possible que cette fonction renvoie une liste vide peu après la création d'une instance.

Voir également deviceConnected() et deviceDisconnected().

[signal] void QBluetoothLocalDevice::deviceConnected(const QBluetoothAddress &address)

Ce signal est émis lorsque l'appareil local établit une connexion avec un appareil distant via address.

Voir également deviceDisconnected() et connectedDevices().

[signal] void QBluetoothLocalDevice::deviceDisconnected(const QBluetoothAddress &address)

Ce signal est émis lorsque l'appareil local se déconnecte d'un appareil Bluetooth distant via la fonction « address ».

Voir également deviceConnected() et connectedDevices().

[signal, since 6.2] void QBluetoothLocalDevice::errorOccurred(QBluetoothLocalDevice::Error error)

Signal émis en cas d'error s exceptionnelles lors de l'appairage.

Cette fonction a été introduite dans Qt 6.2.

QBluetoothLocalDevice::HostMode QBluetoothLocalDevice::hostMode() const

Renvoie le mode hôte actuel de ce périphérique Bluetooth local. Sous macOS, il s'agit soit de « HostPoweredOff », soit de « HostConnectable ».

Voir également setHostMode().

[signal] void QBluetoothLocalDevice::hostModeStateChanged(QBluetoothLocalDevice::HostMode state)

L'state e de l'hébergeur a été transférée vers une autre adresse : HostMode.

bool QBluetoothLocalDevice::isValid() const

Renvoie « true » si l'QBluetoothLocalDevice e un périphérique Bluetooth local disponible ; sinon, renvoie « false ».

Si l’adaptateur Bluetooth local représenté par une instance de cette classe est retiré du système (par exemple, retrait de la clé Bluetooth sous-jacente), cette instance devient alors invalide. Une instance QBluetoothLocalDevice déjà invalide reste invalide même si le même adaptateur Bluetooth est réintégré au système.

Remarque : à partir d’Android 12 (niveau d’API 31), la création de cette classe nécessite des autorisations d’exécution Bluetooth (BLUETOOTH_SCAN et BLUETOOTH_CONNECT). Si ces autorisations ne sont pas accordées, le périphérique ne sera pas valide.

Voir également allDevices().

QString QBluetoothLocalDevice::name() const

Renvoie le nom attribué par l'utilisateur à cet appareil Bluetooth.

[signal] void QBluetoothLocalDevice::pairingFinished(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

Le couplage ou le découplage s'est achevé avec address. L'état actuel du couplage est disponible à l'adresse pairing. Si la demande de couplage a échoué, ce signal ne sera pas émis. Le signal errorOccurred() est émis si la demande de couplage a échoué. Ce signal n'est émis que pour les demandes de couplage qui ont été préalablement initiées en appelant la méthode requestPairing() de l'instance d'objet actuelle.

QBluetoothLocalDevice::Pairing QBluetoothLocalDevice::pairingStatus(const QBluetoothAddress &address) const

Renvoie l'état actuel de l'appairage Bluetooth de l'address, qu'il soit non appairé, appairé ou appairé et autorisé.

void QBluetoothLocalDevice::powerOn()

Allume l'appareil après l'avoir remis à l'état « hostMode » (), s'il était éteint.

Remarque : en raison des différentes politiques de sécurité en vigueur sur les plateformes prises en charge, cette méthode peut se comporter différemment selon les plateformes. Par exemple, le système peut demander à l’utilisateur de confirmer avant d’activer ou de désactiver le Bluetooth. Sous macOS, il n’est pas possible d’activer ou de désactiver le Bluetooth. Veuillez vous reporter à la documentation spécifique au Bluetooth de chaque plateforme pour plus de détails.

void QBluetoothLocalDevice::requestPairing(const QBluetoothAddress &address, QBluetoothLocalDevice::Pairing pairing)

Définissez l'état « pairing » à l'aide de ` address`. Les résultats sont renvoyés par le signal ` pairingFinished()`.

Sous Android et macOS, le mode « AuthorizedPaired » n’est pas disponible et le comportement est identique à celui du mode « Paired ». Sous Windows, le choix du mode d’appairage exact relève du système d’exploitation.

Sous macOS, il n’est pas possible de désappairer un appareil. Si « Unpaired » est demandé, pairingFinished() est immédiatement émis bien que l’appareil reste appairé. Il est possible de demander l’appairage d’un appareil précédemment désappairé. De plus, AuthorizedPaired se comporte de la même manière que Paired.

Attention : la création d'un appairage peut prendre plusieurs minutes et peut nécessiter une confirmation de la part de l'utilisateur.

void QBluetoothLocalDevice::setHostMode(QBluetoothLocalDevice::HostMode mode)

Définit le mode hôte de ce périphérique Bluetooth local sur « mode ».

Certaines transitions, telles que la mise sous tension ou hors tension de l'appareil, peuvent prendre un certain temps. Par conséquent, les appels suivants ne doivent être effectués qu'une fois que le signal ` hostModeStateChanged()` a terminé la requête précédente. Si cette consigne n'est pas respectée, le résultat d'une telle série d'appels n'est pas bien défini.

Remarque : en raison des politiques de sécurité variables sur les plateformes prises en charge, cette méthode peut présenter des comportements différents selon les plateformes. Par exemple, le système peut demander une confirmation à l’utilisateur avant d’activer ou de désactiver le Bluetooth, et tous les modes hôte ne sont pas nécessairement pris en charge. Sous macOS, il n’est pas possible de modifier par programmation l’état de l’ hostMode(). L’utilisateur ne peut activer ou désactiver le Bluetooth que dans les Préférences Système. Sous Windows, cette méthode doit être appelée depuis le thread de l’interface utilisateur, car elle peut nécessiter une confirmation de l’utilisateur. Veuillez vous reporter à la documentation Bluetooth spécifique à la plateforme pour plus de détails.

Voir également hostMode().

© 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.