QNearFieldManager Class
La classe `QNearFieldManager` permet d'accéder aux notifications relatives aux événements NFC. En savoir plus...
| En-tête : | #include <QNearFieldManager> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Nfc) target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
| qmake : | QT += nfc |
| Hérite de : | QObject |
Types publics
| enum class | AdapterState { Offline, TurningOn, Online, TurningOff } |
Fonctions publiques
| QNearFieldManager(QObject *parent = nullptr) | |
| virtual | ~QNearFieldManager() |
(since 6.2) bool | isEnabled() const |
| bool | isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const |
(since 6.2) void | setUserInformation(const QString &message) |
| bool | startTargetDetection(QNearFieldTarget::AccessMethod accessMethod) |
| void | stopTargetDetection(const QString &errorMessage = QString()) |
Signaux
| void | adapterStateChanged(QNearFieldManager::AdapterState state) |
| void | targetDetected(QNearFieldTarget *target) |
(since 6.2) void | targetDetectionStopped() |
| void | targetLost(QNearFieldTarget *target) |
Description détaillée
Les appareils NFC Forum prennent en charge deux modes de communication. Le premier mode, la communication pair à pair, est utilisé pour établir une communication entre deux appareils NFC Forum. Le second mode, la communication maître/esclave, est utilisé pour établir une communication entre un appareil NFC Forum et une balise NFC Forum ou une carte sans contact. Le signal targetDetected() est émis lorsqu'un appareil cible entre dans la zone de communication. La communication peut être lancée à partir du port connecté à ce signal.
Les appareils NFC Forum fonctionnent généralement en tant que maître dans les communications maître/esclave. Certains appareils sont également capables de fonctionner en tant qu’esclave, dans ce qu’on appelle le mode « émulation de carte ». Dans ce mode, l’appareil NFC local émule une étiquette NFC Forum ou une carte sans contact.
Les applications peuvent se connecter aux signaux « targetDetected » () et « targetLost » () pour être averties lorsqu’une balise NFC Forum entre ou sort de la zone de proximité. Avant l’émission de ces signaux, la détection de la cible doit être lancée à l’aide de la fonction « startTargetDetection » (). La détection de cible peut être arrêtée à l’aide de la fonction stopTargetDetection(). Lorsque la cible n’est plus nécessaire, elle doit être supprimée, car d’autres applications pourraient se voir empêcher d’y accéder.
NFC sous Linux
Le projet Linux NFC fournit des logiciels permettant de prendre en charge la technologie NFC sur les plateformes Linux. Le démon neard permet d'accéder au matériel pris en charge via des interfaces DBus. QtNfc nécessite la version 0.14 de neard, qui peut être compilée à partir du code source ou installée via le gestionnaire de paquets Linux approprié. Toutes les fonctionnalités de l'API ne sont pas encore prises en charge. Pour permettre à QtNfc d’accéder aux interfaces DBus, le démon neard doit être en cours d’exécution. En cas de problèmes, les messages de débogage peuvent être activés en activant la journalisation par catégorie pour « qt.nfc.neard ».
Documentation sur les types de membres
enum class QNearFieldManager::AdapterState
Cette énumération décrit les différents états qu'un adaptateur NFC peut présenter.
| Constante | Valeur | Description |
|---|---|---|
QNearFieldManager::AdapterState::Offline | 1 | L'adaptateur NFC est hors ligne. |
QNearFieldManager::AdapterState::TurningOn | 2 | L'adaptateur NFC est en cours d'activation. |
QNearFieldManager::AdapterState::Online | 3 | L'adaptateur NFC est connecté. |
QNearFieldManager::AdapterState::TurningOff | 4 | L'adaptateur NFC est en train de s'éteindre. |
Documentation des fonctions membres
[explicit] QNearFieldManager::QNearFieldManager(QObject *parent = nullptr)
Crée un nouveau gestionnaire de champ proche à l'aide de la fonction ` parent`.
[virtual noexcept] QNearFieldManager::~QNearFieldManager()
Détruit le gestionnaire de champ proche.
[signal] void QNearFieldManager::adapterStateChanged(QNearFieldManager::AdapterState state)
Ce signal est émis chaque fois que l'state ation de l'adaptateur NFC change.
Remarque : pour l'instant , ce signal n'est émis que sur Android.
[since 6.2] bool QNearFieldManager::isEnabled() const
Renvoie « true » si l'appareil dispose d'un adaptateur NFC et que celui-ci est activé ; sinon, renvoie « false ».
Cette fonction a été introduite dans Qt 6.2.
Voir également isSupported().
bool QNearFieldManager::isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const
Renvoie « true » si le périphérique sous-jacent dispose d’un adaptateur NFC ; sinon, renvoie « false ». Si une valeur « accessMethod » est fournie, la fonction renvoie « true » uniquement si l’adaptateur NFC prend en charge la valeur « accessMethod » indiquée.
Voir également isEnabled().
[since 6.2] void QNearFieldManager::setUserInformation(const QString &message)
message Définit le message que le système affiche à l'utilisateur. Si la détection de cible est en cours, la variable ` message ` sera mise à jour immédiatement et pourra servir de message de progression. Le dernier message défini avant un appel à ` startTargetDetection()` sans message d'erreur est utilisé comme message de réussite. Si la détection de cible n'est pas en cours, l' sera utilisé comme message initial lors du lancement de la prochaine détection. Par défaut, aucun message n'est affiché à l'utilisateur.
Remarque : actuellement , cette fonction n’a d’effet que sur iOS, car le système affiche une fenêtre contextuelle pendant l’analyse. Sur iOS, cette message est associée au message d’alerte qui s’affiche une fois l’analyse terminée avec succès. Les autres plateformes ignorent message.
Cette fonction a été introduite dans Qt 6.2.
Voir également ` startTargetDetection()` et ` stopTargetDetection()`.
bool QNearFieldManager::startTargetDetection(QNearFieldTarget::AccessMethod accessMethod)
Lance la détection des cibles et renvoie ` true ` si la détection a démarré avec succès ; sinon, renvoie ` false`. Provoque l'émission du signal ` targetDetected()` lorsqu'une cible se trouve à proximité. Seules les balises présentant l'accessMethod spécifiée seront signalées. La détection des cibles se poursuit jusqu'à ce que la fonction ` stopTargetDetection()` soit appelée.
Pour détecter des cibles avec une accessMethod différente, il faut d’abord appeler stopTargetDetection().
Remarque : sous iOS, il est impossible de lancer simultanément la détection de cibles pour NdefAccess et TagTypeSpecificAccess. Ainsi, si AnyAccess est sélectionné, c’est NdefAccess qui sera utilisé à la place.
Remarque : sur les plateformes utilisant neard, la détection des cibles s'arrête dès qu'une balise a été détectée.
Voir également stopTargetDetection().
void QNearFieldManager::stopTargetDetection(const QString &errorMessage = QString())
Cesse la détection des cibles. Le signal ` targetDetected()` ne sera plus émis tant qu’un nouvel appel à ` startTargetDetection()` n’aura pas été effectué. Les cibles détectées auparavant restent valides.
Remarque : sous iOS, les cibles détectées deviennent invalides après cet appel (par exemple, toute tentative d’écriture ou de lecture de messages NDEF entraînera une erreur).
Si un errorMessage est fourni, cela indique au système que l’objectif de l’application n’a pas été atteint. Le message « errorMessage » et une icône d’erreur correspondante s’affichent alors à l’utilisateur. L’appel de cette fonction avec un errorMessage vide implique une fin d’opération réussie ; dans le cas contraire, un errorMessage doit être transmis à cette fonction.
Remarque : Actuellement , ` errorMessage ` n’a d’effet que sur iOS, car le système affiche une fenêtre contextuelle pendant l’analyse dans laquelle l’ errorMessage est visible. Les autres plateformes ignoreront ce paramètre.
Voir aussi setUserInformation().
[signal] void QNearFieldManager::targetDetected(QNearFieldTarget *target)
Ce signal est émis dès qu'une cible est détectée. Le paramètre « target » représente la cible détectée.
Ce signal sera émis pour toutes les cibles détectées.
QNearFieldManager conserve la propriété de ` target`, mais celle-ci ne sera pas détruite tant que le destructeur ` QNearFieldManager ` n'aura pas été appelé. La propriété peut être transférée en appelant ` setParent()`.
Ne supprimez pas ` target ` à partir de l'emplacement connecté à ce signal ; appelez plutôt ` deleteLater()`.
Remarque : si target est supprimé avant d’avoir quitté la zone de proximité, le signal targetLost() ne sera pas émis.
Voir également targetLost().
[signal, since 6.2] void QNearFieldManager::targetDetectionStopped()
Ce signal est émis chaque fois que la détection de cible est interrompue.
Remarque : ce signal estgénéralement émis lorsque la fonction stopTargetDetection() a été appelée. De plus, sur iOS, l'utilisateur peut interrompre la détection via une fenêtre contextuelle affichée par le système pendant l'analyse, ce qui entraîne également l'émission de ce signal.
Cette fonction a été introduite dans Qt 6.2.
[signal] void QNearFieldManager::targetLost(QNearFieldTarget *target)
Ce signal est émis dès qu'une cible sort de la zone de proximité. Le paramètre « target » correspond à la cible perdue.
Ne supprimez pas ` target ` de l'emplacement connecté à ce signal ; utilisez plutôt la fonction ` deleteLater()` ().
Voir également QNearFieldTarget::disconnected().
© 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.