Sur cette page

QNdefRecord Class

La classe QNdefRecord fournit un enregistrement NDEF NFC. Plus d'informations...

En-tête : #include <QNdefRecord>
CMake : find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake : QT += nfc
Héritée par :

QNdefNfcIconRecord, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, et QNdefNfcUriRecord

Types publics

enum TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown }

Fonctions publiques

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)

Description détaillée

QNdefRecord et les classes dérivées sont utilisées pour analyser le contenu de NDEF messages et créer de nouveaux messages NDEF.

Utilisez typeNameFormat() et setTypeNameFormat() pour obtenir et définir le format du nom de type de l'enregistrement NDEF.

Utilisez type() et setType() pour obtenir et définir le type de l'enregistrement NDEF.

Utilisez id() et setId() pour obtenir et définir l'identifiant de l'enregistrement NDEF.

Utilisez payload() et setPayload() pour obtenir et définir la charge utile de l'enregistrement NDEF. isEmpty() peut être utilisé pour tester si la charge utile est vide.

QNdefRecord est une classe implicitement partagée. Cela signifie que vous pouvez convertir efficacement entre QNdefRecord et les classes d'enregistrement spécialisées. La fonction modèle isRecordType() peut être utilisée pour tester si une conversion est possible. L'exemple suivant montre comment tester si un QNdefRecord est un enregistrement NFC RTD Text et en extraire les informations textuelles.

if (record.isRecordType<QNdefNfcTextRecord>()) { QNdefNfcTextRecord textRecord(record) ;
    qDebug() << textRecord.text();
}

Création de classes d'enregistrements NDEF spécialisés

Les classes d'enregistrements NDEF spécialisés peuvent être facilement créées à l'aide des macros Q_DECLARE_NDEF_RECORD() et Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(). L'exemple suivant montre la déclaration de classe du type d'enregistrement hypothétique example.com:f qui encapsule une seule propriété 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")

Le développeur doit uniquement fournir des implémentations pour les fonctions foo() et setFoo() qui analysent et définissent le contenu de la charge utile de l'enregistrement NDEF.

Documentation sur les types de membres

enum QNdefRecord::TypeNameFormat

Cette énumération décrit le format du nom de type d'un enregistrement NDEF.

ConstanteValeurDescription
QNdefRecord::Empty0x00Enregistrement NDEF vide, l'enregistrement ne contient pas de données utiles.
QNdefRecord::NfcRtd0x01Le type d'enregistrement NDEF est défini par une spécification RTD NFC.
QNdefRecord::Mime0x02Le type d'enregistrement NDEF suit la construction décrite dans le RFC 2046
QNdefRecord::Uri0x03Le type d'enregistrement NDEF suit la construction décrite dans le RFC 3986
QNdefRecord::ExternalRtd0x04Le type d'enregistrement du NDEF suit la construction pour les noms de types externes décrite dans la spécification RDT de la NFC.
QNdefRecord::Unknown0x05Le type d'enregistrement est inconnu et doit être traité comme un contenu de type MIME "application/octet-stream" sans autre contexte.

Documentation des fonctions membres

QNdefRecord::QNdefRecord()

Construit un nouvel enregistrement NDEF vide.

QNdefRecord::QNdefRecord(const QNdefRecord &other)

Construit un nouvel enregistrement NDEF qui est une copie de other.

[noexcept] QNdefRecord::~QNdefRecord()

Détruit l'enregistrement NDEF.

[since 6.2] void QNdefRecord::clear()

Efface l'enregistrement NDEF.

Un appel à isEmpty() renvoie true pour un enregistrement effacé. L'enregistrement type() est remplacé par Empty.

Cette fonction a été introduite dans Qt 6.2.

QByteArray QNdefRecord::id() const

Renvoie l'identifiant de l'enregistrement NDEF.

Voir aussi setId().

bool QNdefRecord::isEmpty() const

Renvoie true si l'enregistrement NDEF contient une charge utile vide ; sinon, renvoie false.

Cela équivaut à appeler payload().isEmpty().

template <typename T> bool QNdefRecord::isRecordType() const

Renvoie true si l'enregistrement NDEF est du type spécifié, sinon renvoie false.

QByteArray QNdefRecord::payload() const

Renvoie la charge utile de l'enregistrement NDEF.

Voir aussi setPayload().

void QNdefRecord::setId(const QByteArray &id)

Définit l'identifiant de l'enregistrement NDEF à id.

Voir aussi id().

void QNdefRecord::setPayload(const QByteArray &payload)

Définit la charge utile de l'enregistrement NDEF à payload.

Voir aussi payload().

void QNdefRecord::setType(const QByteArray &type)

Définit le type de l'enregistrement NDEF à type.

Voir aussi type().

void QNdefRecord::setTypeNameFormat(QNdefRecord::TypeNameFormat typeNameFormat)

Définit le format du nom de type de l'enregistrement NDEF à typeNameFormat.

Voir aussi typeNameFormat().

QByteArray QNdefRecord::type() const

Renvoie le type de l'enregistrement NDEF.

Voir aussi setType().

QNdefRecord::TypeNameFormat QNdefRecord::typeNameFormat() const

Renvoie le format du nom de type de l'enregistrement NDEF.

Voir aussi setTypeNameFormat().

bool QNdefRecord::operator!=(const QNdefRecord &other) const

Renvoie true si cet enregistrement NDEF n'est pas égal à other; sinon, renvoie false.

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

Attribue cet enregistrement NDEF à other.

bool QNdefRecord::operator==(const QNdefRecord &other) const

Renvoie true si other et cet enregistrement NDEF sont identiques. Sinon, il renvoie false.

Documentation sur les macros

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)

Cette macro déclare une spécialisation de modèle pour la fonction QNdefRecord::isRecordType().

Cette macro doit être utilisée dans le fichier d'en-tête directement après la définition d'une classe d'enregistrement NDEF spécialisée.

className est le nom de la classe spécialisée, typeNameFormat est le QNdefRecord::TypeNameFormat approprié pour le type personnalisé et type est le type sans les préfixes NID ou NSS. C'est-à-dire exemple.com:f et non urn :nfc:ext:exemple.com:f.

Voir la section sur Creating specialized NDEF record classes pour plus de détails.

Voir également Q_DECLARE_NDEF_RECORD().

Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)

Cette macro déclare les constructeurs par défaut et de copie pour les classes d'enregistrement NDEF spécialisées.

className est le nom de la classe spécialisée, typeNameFormat est le QNdefRecord::TypeNameFormat approprié pour le type personnalisé et type est le type sans les préfixes NID ou NSS. C'est-à-dire exemple.com:f et non urn :nfc:ext:exemple.com:f. initialPayload est la charge utile initiale d'un enregistrement vide, il doit s'agir d'un QByteArray ou d'un type qui peut être implicitement converti en QByteArray.

Voir la section sur Creating specialized NDEF record classes pour plus de détails.

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