Sur cette page

QNearFieldManager Class

La classe QNearFieldManager permet d'accéder aux notifications d'événements NFC. Plus d'informations...

En-tête : #include <QNearFieldManager>
CMake : find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake : QT += nfc
Héritages : 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 dispositifs du Forum NFC prennent en charge deux modes de communication. Le premier mode, les communications d'égal à égal, est utilisé pour communiquer entre deux dispositifs du Forum NFC. Le second mode, les communications maître/esclave, est utilisé pour communiquer entre un dispositif du Forum NFC et un tag ou une carte sans contact du Forum NFC. Le signal targetDetected() est émis lorsqu'un dispositif cible entre dans le champ de communication. Les communications peuvent être lancées à partir de la fente connectée à ce signal.

Les dispositifs du forum NFC fonctionnent généralement en tant que maître dans les communications maître/esclave. Certains dispositifs sont également capables de fonctionner en tant qu'esclave, ce que l'on appelle le mode d'émulation de carte. Dans ce mode, le dispositif NFC local émule un tag ou une carte sans contact du NFC Forum.

Les applications peuvent se connecter aux signaux targetDetected() et targetLost() pour être informées de l'entrée ou de la sortie d'un tag du Forum NFC. Avant que ces signaux ne soient émis, la détection des cibles doit être lancée à l'aide de la fonction startTargetDetection(). La détection de la 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 peuvent être empêchées d'accéder à la cible.

NFC sur Linux

Le projet Linux NFC fournit un logiciel pour supporter le 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 des sources 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 fonctionner. En cas de problème, la sortie de débogage peut être activée en activant la journalisation catégorisée pour 'qt.nfc.neard'.

Type de membre Documentation

enum class QNearFieldManager::AdapterState

Cette énumération décrit les différents états que peut avoir un adaptateur NFC.

ConstanteValeurDescription de l'état
QNearFieldManager::AdapterState::Offline1L'adaptateur NFC est hors ligne.
QNearFieldManager::AdapterState::TurningOn2L'adaptateur NFC est en cours d'activation.
QNearFieldManager::AdapterState::Online3L'adaptateur nfc est en ligne.
QNearFieldManager::AdapterState::TurningOff4L'adaptateur nfc est en train de s'éteindre.

Documentation des fonctions membres

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

Construit un nouveau gestionnaire de champ proche avec parent.

[virtual noexcept] QNearFieldManager::~QNearFieldManager()

Détruit le gestionnaire du champ proche.

[signal] void QNearFieldManager::adapterStateChanged(QNearFieldManager::AdapterState state)

Ce signal est émis lorsque l'adresse state de l'adaptateur NFC est modifiée.

Remarque : actuellement, ce signal n'est émis que sur Android.

[since 6.2] bool QNearFieldManager::isEnabled() const

Renvoie true si l'appareil possède un adaptateur NFC et qu'il est activé ; sinon, renvoie false.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi isSupported().

bool QNearFieldManager::isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const

Renvoie true si l'appareil sous-jacent dispose d'un adaptateur NFC ; sinon, renvoie false. Si une adresse accessMethod est donnée, la fonction renvoie true uniquement si l'adaptateur NFC prend en charge l'adresse accessMethod.

Voir aussi isEnabled().

[since 6.2] void QNearFieldManager::setUserInformation(const QString &message)

Définit le message que le système affiche à l'utilisateur. Si la détection des cibles est en cours, le site message est mis à jour immédiatement et peut être utilisé comme 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 des cibles n'est pas en cours, le message message 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 adresse message est associée au message d'alerte qui s'affiche lorsque l'analyse est 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)

Commence à détecter les cibles et renvoie true si la détection de la cible a commencé avec succès ; sinon, renvoie false. Provoque l'émission du signal targetDetected() lorsqu'une cible se trouve à proximité. Seules les balises portant le numéro accessMethod seront signalées. La détection des cibles se poursuit jusqu'à ce que stopTargetDetection() soit appelé.

Pour détecter des cibles avec un accessMethod différent, il faut d'abord appeler stopTargetDetection().

Note : Sur iOS, il est impossible de démarrer la détection de cibles pour NdefAccess et TagTypeSpecificAccess en même temps. Donc si AnyAccess est sélectionné, NdefAccess sera utilisé à la place.

Note : Sur les plateformes utilisant neard, la détection de cible s'arrêtera dès qu'une balise aura été détectée.

Voir également stopTargetDetection().

void QNearFieldManager::stopTargetDetection(const QString &errorMessage = QString())

Arrête la détection des cibles. Le signal targetDetected() ne sera plus émis jusqu'à ce qu'un autre appel à startTargetDetection() soit effectué. Les cibles détectées auparavant sont toujours valides.

Note : Sur iOS, les cibles détectées deviennent invalides après cet appel (par exemple, une tentative d'écriture ou de lecture de messages NDEF entraînera une erreur).

Si un errorMessage est fourni, il indique au système que l'objectif de l'application n'a pas été atteint. Le site errorMessage et l'icône d'erreur correspondante sont affichés à l'utilisateur. L'appel à 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 errorMessage est visible. Les autres plateformes ignorent ce paramètre.

Voir aussi setUserInformation().

[signal] void QNearFieldManager::targetDetected(QNearFieldTarget *target)

Ce signal est émis lorsqu'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 maintient la propriété de target, cependant, il ne sera pas détruit jusqu'à ce que le destructeur QNearFieldManager soit appelé. La propriété peut être transférée en appelant setParent().

Ne supprimez pas target de l'emplacement connecté à ce signal, mais appelez deleteLater().

Remarque : si target est supprimé avant de sortir de la proximité, le signal targetLost() ne sera pas émis.

Voir aussi targetLost().

[signal, since 6.2] void QNearFieldManager::targetDetectionStopped()

Ce signal est émis lorsque la détection de la cible est arrêtée.

Remarque : ce signal est généralement émis lorsque stopTargetDetection() a été appelé. En outre, l'utilisateur peut arrêter la détection sur iOS dans une fenêtre contextuelle affichée par le système pendant le balayage, 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 lorsqu'une cible s'éloigne. Le paramètre target représente la cible perdue.

Ne supprimez pas target du slot connecté à ce signal, utilisez plutôt deleteLater().

Voir aussi 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.