QNearFieldManager Class
La clase QNearFieldManager proporciona acceso a las notificaciones de eventos NFC. Más...
| Cabecera: | #include <QNearFieldManager> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Nfc)target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
| qmake: | QT += nfc |
| Hereda: | QObject |
Tipos Públicos
| enum class | AdapterState { Offline, TurningOn, Online, TurningOff } |
Funciones Públicas
| 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()) |
Señales
| void | adapterStateChanged(QNearFieldManager::AdapterState state) |
| void | targetDetected(QNearFieldTarget *target) |
(since 6.2) void | targetDetectionStopped() |
| void | targetLost(QNearFieldTarget *target) |
Descripción detallada
Los dispositivos NFC Forum admiten dos modos de comunicación. El primer modo, comunicaciones peer-to-peer, se utiliza para comunicarse entre dos dispositivos del Foro NFC. El segundo modo, comunicaciones maestro/esclavo, se utiliza para comunicarse entre un dispositivo del Foro NFC y una etiqueta o tarjeta sin contacto del Foro NFC. La señal targetDetected() se emite cuando un dispositivo de destino entra en el rango de comunicaciones. Las comunicaciones pueden iniciarse desde la ranura conectada a esta señal.
Los dispositivos NFC Forum generalmente operan como maestro en comunicaciones maestro/esclavo. Algunos dispositivos también son capaces de operar como el esclavo, el llamado modo de emulación de tarjeta. En este modo, el dispositivo NFC local emula una etiqueta del Foro NFC o una tarjeta sin contacto.
Las aplicaciones pueden conectarse a las señales targetDetected() y targetLost() para recibir notificaciones cuando una etiqueta NFC Forum Tag entra o sale de la proximidad. Antes de que se emitan estas señales, la detección de objetivos debe iniciarse con la función startTargetDetection(). La detección del objetivo puede detenerse con la función stopTargetDetection(). Cuando el objetivo ya no es necesario el objetivo debe ser eliminado ya que otras aplicaciones pueden ser bloqueadas de acceder al objetivo.
NFC en Linux
El proyecto Linux NFC proporciona software para soportar NFC en plataformas Linux. El demonio neard permitirá el acceso al hardware compatible a través de interfaces DBus. QtNfc requiere la versión 0.14 de neard, que puede compilarse desde el código fuente o instalarse mediante el gestor de paquetes de Linux adecuado. Actualmente no se soportan todas las características de la API. Para que QtNfc pueda acceder a las interfaces DBus, el demonio neard debe estar en ejecución. En caso de problemas, se puede habilitar la salida de depuración activando el registro categorizado para 'qt.nfc.neard'.
Documentación del tipo de miembro
enum class QNearFieldManager::AdapterState
Este enum describe los diferentes estados que puede tener un adaptador NFC.
| Constante | Valor | Descripción |
|---|---|---|
QNearFieldManager::AdapterState::Offline | 1 | El adaptador nfc está desconectado. |
QNearFieldManager::AdapterState::TurningOn | 2 | El adaptador nfc está encendido. |
QNearFieldManager::AdapterState::Online | 3 | El adaptador nfc está en línea. |
QNearFieldManager::AdapterState::TurningOff | 4 | El adaptador nfc se está apagando. |
Documentación de la función de miembro
[explicit] QNearFieldManager::QNearFieldManager(QObject *parent = nullptr)
Construye un nuevo gestor de campo cercano con parent.
[virtual noexcept] QNearFieldManager::~QNearFieldManager()
Destruye el gestor de campo cercano.
[signal] void QNearFieldManager::adapterStateChanged(QNearFieldManager::AdapterState state)
Esta señal se emite cada vez que cambia la dirección state del adaptador NFC.
Nota: Actualmente, esta señal sólo se emite en Android.
[since 6.2] bool QNearFieldManager::isEnabled() const
Devuelve true si el dispositivo tiene un adaptador NFC y está encendido; en caso contrario devuelve false.
Esta función se introdujo en Qt 6.2.
Véase también isSupported().
bool QNearFieldManager::isSupported(QNearFieldTarget::AccessMethod accessMethod = QNearFieldTarget::AnyAccess) const
Devuelve true si el dispositivo subyacente tiene un adaptador NFC; en caso contrario, devuelve false. Si se indica un accessMethod, la función devuelve true sólo si el adaptador NFC admite el accessMethod indicado.
Véase también isEnabled().
[since 6.2] void QNearFieldManager::setUserInformation(const QString &message)
Establece el mensaje que el sistema muestra al usuario. Si se está ejecutando la detección de objetivos, el message se actualizará inmediatamente y puede utilizarse como mensaje de progreso. El último mensaje establecido antes de una llamada a startTargetDetection() sin mensaje de error se utilizará como mensaje de éxito. Si la detección de objetivos no se está ejecutando, el message se utilizará como mensaje inicial cuando se inicie la siguiente detección. Por defecto, no se muestra ningún mensaje al usuario.
Nota: Actualmente, esta función sólo tiene efecto en iOS porque el sistema muestra una ventana emergente durante la detección. En iOS, este message se asigna al mensaje de alerta que se muestra al finalizar correctamente la exploración. Otras plataformas ignorarán message.
Esta función se introdujo en Qt 6.2.
Véase también startTargetDetection() y stopTargetDetection().
bool QNearFieldManager::startTargetDetection(QNearFieldTarget::AccessMethod accessMethod)
Inicia la detección de objetivos y devuelve true si la detección de objetivos se ha iniciado correctamente; en caso contrario, devuelve false. Provoca la emisión de la señal targetDetected() cuando un objetivo se encuentra cerca. Sólo se informará de las etiquetas con el accessMethod dado. La detección de objetivos continúa hasta que se llama a stopTargetDetection().
Para detectar objetivos con un accessMethod diferente, primero se debe llamar a stopTargetDetection().
Nota: En iOS, es imposible iniciar la detección de objetivos para NdefAccess y TagTypeSpecificAccess al mismo tiempo. Por lo tanto, si se selecciona AnyAccess, se utilizará NdefAccess en su lugar.
Nota: En las plataformas que utilizan neard, la detección de objetivos se detendrá en cuanto se haya detectado una etiqueta.
Véase también stopTargetDetection().
void QNearFieldManager::stopTargetDetection(const QString &errorMessage = QString())
Detiene la detección de objetivos. La señal targetDetected() dejará de emitirse hasta que se realice otra llamada a startTargetDetection(). Los objetivos detectados anteriormente siguen siendo válidos.
Nota: En iOS, los objetivos detectados dejan de ser válidos después de esta llamada (por ejemplo, un intento de escribir o leer mensajes NDEF producirá un error).
Si se proporciona un errorMessage, es un indicio para el sistema de que no se ha alcanzado el objetivo de la aplicación. El errorMessage y un icono de error correspondiente se muestran al usuario. Llamar a esta función con un errorMessage vacío implica que la operación ha finalizado con éxito; en caso contrario, debe pasarse un errorMessage a esta función.
Nota: Actualmente, errorMessage sólo tiene efecto en iOS porque el sistema muestra una ventana emergente durante la exploración en la que es visible errorMessage. Otras plataformas ignorarán este parámetro.
Véase también setUserInformation().
[signal] void QNearFieldManager::targetDetected(QNearFieldTarget *target)
Esta señal se emite cada vez que se detecta un objetivo. El parámetro target representa el objetivo detectado.
Esta señal se emitirá para todos los objetivos detectados.
QNearFieldManager mantiene la propiedad de target, sin embargo, no se destruirá hasta que se llame al destructor QNearFieldManager. La propiedad puede transferirse llamando a setParent().
No borre target de la ranura conectada a esta señal, en su lugar llame a deleteLater().
Nota: si se borra target antes de que salga de su proximidad, no se emitirá la señal targetLost().
Véase también targetLost().
[signal, since 6.2] void QNearFieldManager::targetDetectionStopped()
Esta señal se emite cuando se detiene la detección del objetivo.
Nota: Esta señal se emite principalmente cuando se llama a stopTargetDetection(). Además, el usuario puede detener la detección en iOS dentro de una ventana emergente mostrada por el sistema durante la exploración, lo que también provoca la emisión de esta señal.
Esta función se introdujo en Qt 6.2.
[signal] void QNearFieldManager::targetLost(QNearFieldTarget *target)
Esta señal se emite cada vez que un objetivo se aleja de su proximidad. El parámetro target representa el objetivo perdido.
No elimine target de la ranura conectada a esta señal, utilice en su lugar deleteLater().
Véase también 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.