QNdefRecord Class
La clase QNdefRecord proporciona un registro NDEF NFC. Más...
| Cabecera: | #include <QNdefRecord> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Nfc)target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
| qmake: | QT += nfc |
| Heredado por: | QNdefNfcIconRecord, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, y QNdefNfcUriRecord |
Tipos públicos
| enum | TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown } |
Funciones públicas
| QNdefRecord() | |
| QNdefRecord(const QNdefRecord &other) | |
| ~QNdefRecord() | |
(since 6.2) void | clear() |
| QByteArray | id() const |
| bool | isEmpty() const |
| bool | isRecordType() const |
| QByteArray | payload() const |
| void | setId(const QByteArray &id) |
| void | setPayload(const QByteArray &payload) |
| void | setType(const QByteArray &type) |
| void | setTypeNameFormat(QNdefRecord::TypeNameFormat typeNameFormat) |
| QByteArray | type() const |
| QNdefRecord::TypeNameFormat | typeNameFormat() const |
| bool | operator!=(const QNdefRecord &other) const |
| QNdefRecord & | operator=(const QNdefRecord &other) |
| bool | operator==(const QNdefRecord &other) const |
Macros
| Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type) | |
| Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload) |
Descripción detallada
QNdefRecord y sus clases derivadas se utilizan para analizar el contenido de NDEF messages y crear nuevos mensajes NDEF.
Utilice typeNameFormat() y setTypeNameFormat() para obtener y establecer el formato del nombre de tipo del registro NDEF.
Utilice type() y setType() para obtener y establecer el tipo del registro NDEF.
Utilice id() y setId() para obtener y establecer el id del registro NDEF.
Utilice payload() y setPayload() para obtener y definir la carga útil del registro NDEF. isEmpty() puede utilizarse para comprobar si la carga útil está vacía.
QNdefRecord es una clase implícitamente compartida. Esto significa que puedes convertir eficientemente entre QNdefRecord y clases de registro especializadas. La función de plantilla isRecordType() puede utilizarse para comprobar si una conversión es posible. El siguiente ejemplo muestra cómo comprobar si un QNdefRecord es un registro de texto RTD NFC y extraer la información de texto del mismo.
if (record.isRecordType<QNdefNfcTextRecord>()) { QNdefNfcTextRecord textRecord(record); qDebug() << textRecord.text(); }
Creación de clases de registro NDEF especializadas
Las clases de registro NDEF especializadas pueden crearse fácilmente con las macros Q_DECLARE_NDEF_RECORD() y Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(). El siguiente ejemplo muestra la declaración de clase del hipotético tipo de registro example.com:f que encapsula una única propiedad int foo.
class ExampleComF : public QNdefRecord { public: Q_DECLARE_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f", QByteArray(sizeof(int), char(0))) int foo() const; void setFoo(int v); }; Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f")
El desarrollador sólo necesita proporcionar implementaciones para las funciones foo() y setFoo() que analizan y establecen el contenido de la carga útil del registro NDEF.
Documentación de los tipos de miembros
enum QNdefRecord::TypeNameFormat
Este enum describe el formato del nombre de tipo de un registro NDEF.
| Constante | Valor | Descripción |
|---|---|---|
QNdefRecord::Empty | 0x00 | Un registro NDEF vacío, el registro no contiene una carga útil |
QNdefRecord::NfcRtd | 0x01 | El tipo de registro NDEF está definido por una especificación RTD de NFC. |
QNdefRecord::Mime | 0x02 | El tipo de registro NDEF sigue la estructura descrita en RFC 2046 |
QNdefRecord::Uri | 0x03 | El tipo de registro NDEF sigue la estructura descrita en RFC 3986 |
QNdefRecord::ExternalRtd | 0x04 | El tipo de registro NDEF sigue la estructura para nombres de tipos externos descrita en la especificación NFC RTD. |
QNdefRecord::Unknown | 0x05 | El tipo de registro es desconocido y debe tratarse de forma similar al contenido con tipo MIME "application/octet-stream" sin más contexto. |
Documentación de las funciones de los miembros
QNdefRecord::QNdefRecord()
Crea un nuevo registro NDEF vacío.
QNdefRecord::QNdefRecord(const QNdefRecord &other)
Construye un nuevo registro NDEF que es una copia de other.
[noexcept] QNdefRecord::~QNdefRecord()
Destruye el registro NDEF.
[since 6.2] void QNdefRecord::clear()
Borra el registro NDEF.
Una llamada a isEmpty() devuelve true para un registro borrado. El registro type() se establece en Empty.
Esta función se introdujo en Qt 6.2.
QByteArray QNdefRecord::id() const
Devuelve el id del registro NDEF.
Véase también setId().
bool QNdefRecord::isEmpty() const
Devuelve true si el registro NDEF contiene una carga útil vacía; en caso contrario, devuelve false.
Esto equivale a llamar a payload().isEmpty().
template <typename T> bool QNdefRecord::isRecordType() const
Devuelve true si el registro NDEF es del tipo de registro especificado; en caso contrario devuelve false.
QByteArray QNdefRecord::payload() const
Devuelve la carga útil del registro NDEF.
Véase también setPayload().
void QNdefRecord::setId(const QByteArray &id)
Establece el id del registro NDEF en id.
Véase también id().
void QNdefRecord::setPayload(const QByteArray &payload)
Establece la carga útil del registro NDEF en payload.
Véase también payload().
void QNdefRecord::setType(const QByteArray &type)
Establece el tipo del registro NDEF en type.
Véase también type().
void QNdefRecord::setTypeNameFormat(QNdefRecord::TypeNameFormat typeNameFormat)
Establece el formato del nombre de tipo del registro NDEF en typeNameFormat.
Véase también typeNameFormat().
QByteArray QNdefRecord::type() const
Devuelve el tipo del registro NDEF.
Véase también setType().
QNdefRecord::TypeNameFormat QNdefRecord::typeNameFormat() const
Devuelve el formato del nombre de tipo del registro NDEF.
Véase también setTypeNameFormat().
bool QNdefRecord::operator!=(const QNdefRecord &other) const
Devuelve true si este registro NDEF no es igual a other; en caso contrario devuelve false.
QNdefRecord &QNdefRecord::operator=(const QNdefRecord &other)
Asigna este registro NDEF a other.
bool QNdefRecord::operator==(const QNdefRecord &other) const
Devuelve true si other y este registro NDEF son iguales. En caso contrario, devuelve false.
Documentación de macros
Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)
Esta macro declara una especialización de plantilla para la función QNdefRecord::isRecordType().
Esta macro debe utilizarse en el archivo de cabecera directamente después de la definición de una clase especializada de registro NDEF.
className es el nombre de la clase especializada, typeNameFormat es el QNdefRecord::TypeNameFormat apropiado para el tipo personalizado y type es el tipo sin los prefijos NID o NSS. Es decir, ejemplo.com:f no urn :nfc:ext:ejemplo.com:f.
Consulte la sección Creating specialized NDEF record classes para obtener más información.
Véase también Q_DECLARE_NDEF_RECORD().
Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)
Esta macro declara constructores por defecto y de copia para clases especializadas de registros NDEF.
className es el nombre de la clase especializada, typeNameFormat es el QNdefRecord::TypeNameFormat apropiado para el tipo personalizado y type es el tipo sin los prefijos NID o NSS. Es decir, ejemplo.com:f no urn :nfc:ext:ejemplo.com:f. initialPayload es la carga útil inicial de un registro vacío, debe ser un QByteArray o un tipo que pueda convertirse implícitamente en un QByteArray.
Para más detalles, véase la sección Creating specialized NDEF record classes.
Véase también Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD().
© 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.