Sur cette page

QLowEnergyAdvertisingData Class

La classe QLowEnergyAdvertisingData représente les données à diffuser lors d'une annonce Bluetooth Low Energy. En savoir plus...

En-tête : #include <QLowEnergyAdvertisingData>
CMake : find_package(Qt6 REQUIRED COMPONENTS Bluetooth)
target_link_libraries(mytarget PRIVATE Qt6::Bluetooth)
qmake : QT += bluetooth

Types publics

enum Discoverability { DiscoverabilityNone, DiscoverabilityLimited, DiscoverabilityGeneral }

Fonctions publiques

QLowEnergyAdvertisingData()
QLowEnergyAdvertisingData(const QLowEnergyAdvertisingData &other)
~QLowEnergyAdvertisingData()
QLowEnergyAdvertisingData::Discoverability discoverability() const
bool includePowerLevel() const
QString localName() const
QByteArray manufacturerData() const
quint16 manufacturerId() const
QByteArray rawData() const
QList<QBluetoothUuid> services() const
void setDiscoverability(QLowEnergyAdvertisingData::Discoverability mode)
void setIncludePowerLevel(bool doInclude)
void setLocalName(const QString &name)
void setManufacturerData(quint16 id, const QByteArray &data)
void setRawData(const QByteArray &data)
void setServices(const QList<QBluetoothUuid> &services)
void swap(QLowEnergyAdvertisingData &other)
QLowEnergyAdvertisingData &operator=(const QLowEnergyAdvertisingData &other)

Membres publics statiques

bool operator!=(const QLowEnergyAdvertisingData &data1, const QLowEnergyAdvertisingData &data2)
bool operator==(const QLowEnergyAdvertisingData &data1, const QLowEnergyAdvertisingData &data2)

Description détaillée

Ces données peuvent inclure le nom de l'appareil, les services GATT proposés par celui-ci, etc. Les données définies via cette classe seront utilisées lorsque la diffusion sera lancée par l'appel de la méthode ` QLowEnergyController::startAdvertising()`. Les objets de cette classe peuvent représenter un paquet de données de diffusion ou un paquet de réponse à un balayage.

Contraintes relatives aux données de diffusion

La longueur maximale des données de diffusion dépend de l’appareil Bluetooth et de la pile Bluetooth de la plateforme. Pour une compatibilité optimale, il est recommandé de limiter la taille des données de diffusion à la limite de diffusion héritée de 31 octets.

Si les données à longueur variable définies via cette classe dépassent la limite prise en charge, le comportement dépendra de l’implémentation de la pile Bluetooth sous-jacente. Les cas les plus courants sont les suivants :

  • les données supplémentaires peuvent être tronquées ou entièrement omises ;
  • la diffusion ne parvient pas à démarrer.

Par exemple, sous Android, la diffusion d’annonces échouera si les données publicitaires dépassent 31 octets. Sur le backend BlueZ DBus, la limite de longueur des données publicitaires et le comportement en cas de dépassement dépendent de BlueZ ; celui-ci peut, par exemple, prendre en charge les annonces étendues, ou ne pas parvenir à lancer la diffusion d’annonces.

Voir également QLowEnergyAdvertisingParameters et QLowEnergyController::startAdvertising().

Documentation sur les types de membres

enum QLowEnergyAdvertisingData::Discoverability

La détectabilité du dispositif publicitaire telle que définie par le profil d'accès générique.

ConstanteValeurDescription
QLowEnergyAdvertisingData::DiscoverabilityNone0Le dispositif émetteur ne souhaite pas être détectable par les dispositifs de balayage.
QLowEnergyAdvertisingData::DiscoverabilityLimited1Le dispositif émetteur souhaite être détectable avec une priorité élevée. Notez que ce mode n’est pas compatible avec l’utilisation d’une liste blanche. La valeur de ` QLowEnergyAdvertisingParameters::filterPolicy()` est toujours supposée être ` QLowEnergyAdvertisingParameters::IgnoreWhiteList ` lorsque la détectabilité limitée est utilisée.
QLowEnergyAdvertisingData::DiscoverabilityGeneral2Le périphérique émetteur souhaite être détectable par les périphériques de balayage.

Documentation des fonctions membres

QLowEnergyAdvertisingData::QLowEnergyAdvertisingData()

Crée un nouvel objet de cette classe. Toutes les valeurs sont initialisées à leurs valeurs par défaut, conformément à la spécification Bluetooth Low Energy.

QLowEnergyAdvertisingData::QLowEnergyAdvertisingData(const QLowEnergyAdvertisingData &other)

Crée un nouvel objet de cette classe qui est une copie de other.

[noexcept] QLowEnergyAdvertisingData::~QLowEnergyAdvertisingData()

Détruit cet objet.

QLowEnergyAdvertisingData::Discoverability QLowEnergyAdvertisingData::discoverability() const

Renvoie le mode de détection du dispositif publicitaire. La valeur par défaut est « DiscoverabilityNone ».

Voir également setDiscoverability().

bool QLowEnergyAdvertisingData::includePowerLevel() const

Indique s'il faut inclure le niveau de puissance d'émission de l'appareil dans les données de diffusion. La valeur par défaut est « false ».

Voir également setIncludePowerLevel().

[static] quint16 QLowEnergyAdvertisingData::invalidManufacturerId()

Renvoie un identifiant de fabricant non valide. Si cette valeur est définie comme identifiant de fabricant (ce qui est le cas par défaut), aucune donnée relative au fabricant ne figurera dans les données publicitaires.

QString QLowEnergyAdvertisingData::localName() const

Renvoie le nom du périphérique local devant être annoncé.

Voir également setLocalName().

QByteArray QLowEnergyAdvertisingData::manufacturerData() const

Renvoie les données du fabricant. La valeur par défaut est un tableau d'octets vide.

Voir également ` setManufacturerData()`.

quint16 QLowEnergyAdvertisingData::manufacturerId() const

Renvoie l'identifiant du fabricant. La valeur par défaut est « QLowEnergyAdvertisingData::invalidManufacturerId » (), ce qui signifie que les données ne seront pas diffusées.

QByteArray QLowEnergyAdvertisingData::rawData() const

Renvoie les données brutes fournies par l'utilisateur à diffuser. La valeur par défaut est un tableau d'octets vide.

Voir également setRawData().

QList<QBluetoothUuid> QLowEnergyAdvertisingData::services() const

Renvoie la liste des UUID de service à publier. Par défaut, cette liste est vide.

Voir également setServices().

void QLowEnergyAdvertisingData::setDiscoverability(QLowEnergyAdvertisingData::Discoverability mode)

Définit le type de détection du dispositif publicitaire sur « mode ».

Remarque : les informationsde détectabilité ne peuvent apparaître que dans un paquet de données publicitaires réel. Si cet objet sert de données de réponse à un scan, l'appel de cette fonction n'aura aucun effet sur la réponse au scan envoyée.

Voir également discoverability().

void QLowEnergyAdvertisingData::setIncludePowerLevel(bool doInclude)

Indique s'il faut inclure le niveau de puissance d'émission de l'appareil dans les données de diffusion. Si doInclude a la valeur true, ces données seront incluses ; dans le cas contraire, elles ne le seront pas.

Voir également includePowerLevel().

void QLowEnergyAdvertisingData::setLocalName(const QString &name)

Spécifie que « name » doit être diffusé comme nom de l'appareil. Si le nom complet ne tient pas dans le paquet de données de publicité, un nom abrégé est envoyé, conformément à la spécification Bluetooth Low Energy.

Sous Android, le nom local ne peut pas être modifié. Android utilise toujours le nom du périphérique. Si ce nom local n’est pas vide, l’implémentation Android inclut le nom du périphérique dans le paquet de publicité ; dans le cas contraire, le nom du périphérique est omis du paquet de publicité.

Voir également localName().

void QLowEnergyAdvertisingData::setManufacturerData(quint16 id, const QByteArray &data)

Définit l'identifiant du fabricant et les données. Le paramètre « id » correspond à l'identifiant de l'entreprise attribué par le Bluetooth SIG. Le paramètre « data » est une valeur arbitraire.

Remarque : macOS et iOS ne prennent pas en charge la diffusion de l’identifiant du fabricant ni des données ; les paramètres fournis seront donc ignorés sur ces plateformes.

Voir également manufacturerData().

void QLowEnergyAdvertisingData::setRawData(const QByteArray &data)

Définit les données à diffuser vers data. Si la valeur n'est pas un tableau d'octets vide, elle sera envoyée telle quelle en tant que données de diffusion et toutes les autres données de cet objet seront ignorées. Cette fonction peut être utilisée pour envoyer des données non standard.

Remarque : si data dépasse 31 octets, il sera tronqué. Il incombe à l’appelant de s’assurer que data est correctement formé.

La définition de données de publicité brutes n’est prise en charge que sur le backend API du noyau Bluetooth sous Linux. Les autres backends ne permettent pas de spécifier les données de publicité brutes en tant que champ global.

Voir également rawData().

void QLowEnergyAdvertisingData::setServices(const QList<QBluetoothUuid> &services)

Indique que les UUID de service figurant dans services doivent être diffusés. Si la liste complète ne tient pas dans le paquet, une liste incomplète est envoyée, conformément à la spécification Bluetooth Low Energy.

Voir également services().

[noexcept] void QLowEnergyAdvertisingData::swap(QLowEnergyAdvertisingData &other)

Permute cet objet avec other.

QLowEnergyAdvertisingData &QLowEnergyAdvertisingData::operator=(const QLowEnergyAdvertisingData &other)

Fait de cet objet une copie de other et renvoie la nouvelle valeur de cet objet.

Éléments non membres associés

bool operator!=(const QLowEnergyAdvertisingData &data1, const QLowEnergyAdvertisingData &data2)

Renvoie « true » si « data1 » et « data2 » ne sont pas égaux au niveau de leur état public ; sinon, renvoie « false ».

bool operator==(const QLowEnergyAdvertisingData &data1, const QLowEnergyAdvertisingData &data2)

Renvoie « true » si « data1 » et « data2 » sont égales au niveau de leur état public ; sinon, renvoie « false ».

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