QNdefRecord Class

QNdefRecord クラスは NFC NDEF レコードを提供します。詳細...

ヘッダー #include <QNdefRecord>
CMake: find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
によって継承されます:

QNdefNfcIconRecord,QNdefNfcSmartPosterRecord,QNdefNfcTextRecord, およびQNdefNfcUriRecord

パブリックタイプ

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

パブリック関数

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

マクロ

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)
Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)

詳細説明

QNdefRecord および派生クラスは、NDEF messages の内容を解析し、新しい NDEF メッセージを作成するために使用されます。

typeNameFormat() およびsetTypeNameFormat() を使用して、NDEF レコードの型名形式を取得および設定します。

type() およびsetType() を使用して、NDEF レコードの型を取得および設定します。

id() およびsetId() を使用して、NDEF レコードの ID を取得および設定する。

payload() およびsetPayload() を使用して、NDEF レコードのペイロードを取得および設定します。isEmpty() を使用すると、ペイロードが空かどうかをテストできます。

QNdefRecord は暗黙的に共有されるクラスです。これは、QNdefRecord と特殊なレコード・クラスとの間で効率的に変換できることを意味します。isRecordType() テンプレート関数を使用して、変換が可能かどうかをテストできます。次の例は、QNdefRecord が NFC RTD テキスト・レコードであるかどうかをテストし、そこからテキスト情報を抽出する方法を示しています。

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

特殊化された NDEF レコードクラスの作成

特殊化された NDEF レコード・クラスはQ_DECLARE_NDEF_RECORD() およびQ_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD() マクロで簡単に作成できます。次の例は、1 つの int プロパティ foo をカプセル化する仮想example.com:fレコード型のクラス宣言を示しています。

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")

開発者は、NDEF レコードのペイロードの内容を解析および設定するfoo() 関数およびsetFoo() 関数の実装を提供するだけでよい。

メンバ型ドキュメント

enum QNdefRecord::TypeNameFormat

この列挙型はNDEFレコードの型名フォーマットを記述する。

定数説明
QNdefRecord::Empty0x00空のNDEFレコード、レコードはペイロードを含まない
QNdefRecord::NfcRtd0x01NDEF レコード・タイプは NFC RTD 仕様で定義されています。
QNdefRecord::Mime0x02NDEF レコードタイプは RFC 2046 に記述されている構成に従う。
QNdefRecord::Uri0x03NDEF レコードタイプは RFC 3986 で説明されている構成に従う。
QNdefRecord::ExternalRtd0x04NDEF レコードの型が NFC RTD 仕様に記述されている外部型名の構成に従っ ている。
QNdefRecord::Unknown0x05レコードのタイプは不明であり、それ以上のコンテキストがない場合は MIME タイプが「application/octet-stream」のコンテンツと同様に扱われるべきである。

メンバー関数ドキュメント

QNdefRecord::QNdefRecord()

新しい空のNDEFレコードを構築する。

QNdefRecord::QNdefRecord(const QNdefRecord &other)

other のコピーである新しいNDEFレコードを構築する。

[noexcept] QNdefRecord::~QNdefRecord()

NDEFレコードを破棄する。

[since 6.2] void QNdefRecord::clear()

NDEFレコードをクリアする。

isEmpty ()コールは、クリアされたレコードに対してtrue を返す。レコードtype() はEmpty に設定される。

この関数は Qt 6.2 で導入されました。

QByteArray QNdefRecord::id() const

NDEF レコードの ID を返す。

setId()も参照

bool QNdefRecord::isEmpty() const

NDEF レコードが空のペイロードを含む場合はtrue を返し、そうでない場合はfalse を返す。

これはpayload().isEmpty() を呼び出すのと同じである。

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

NDEF レコードが指定されたレコードタイプの場合はtrue を返し、そうでない場合はfalse を返す。

QByteArray QNdefRecord::payload() const

NDEF レコードのペイロードを返す。

setPayload()も参照

void QNdefRecord::setId(const QByteArray &id)

NDEF レコードの ID をid に設定する。

id()も参照のこと

void QNdefRecord::setPayload(const QByteArray &payload)

NDEF レコードのペイロードをpayload に設定する。

payload()も参照のこと

void QNdefRecord::setType(const QByteArray &type)

NDEF レコードのタイプをtype に設定する。

type()も参照のこと

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

NDEF レコードの型名フォーマットをtypeNameFormat に設定する。

typeNameFormat()も参照のこと

QByteArray QNdefRecord::type() const

NDEF レコードの型を返す。

setType()も参照

QNdefRecord::TypeNameFormat QNdefRecord::typeNameFormat() const

NDEF レコードの型名フォーマットを返す。

setTypeNameFormat()も参照

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

このNDEFレコードがother と等しくない場合はtrue を返し、そうでない場合はfalse を返す。

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

この NDEF レコードをother に割り当てる。

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

other とこの NDEF レコードが同じ場合はtrue を返す。そうでない場合はfalse を返す。

マクロ・ドキュメント

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)

このマクロはQNdefRecord::isRecordType() 関数のテンプレート特殊化を宣言する。

このマクロは、特化された NDEF レコード・クラスの定義の直後にヘッダー・ファイルで使用する必要があります。

className は特殊化されたクラスの名前、 はカスタム・タイプに適切な で、 は NID 接頭辞や NSS 接頭辞のないタイプです。つまり、typeNameFormat QNdefRecord::TypeNameFormat type example.com:fはurn:nfc:ext:example.com:fではありません。

詳しくはCreating specialized NDEF record classes のセクションを参照。

Q_DECLARE_NDEF_RECORD()も参照してください

Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)

このマクロは、特殊な NDEF レコード・クラスのデフォルト・コンストラクタとコピー・コンストラクタを宣言します。

className は特殊化されたクラスの名前です。 はカスタムタイプに適した で、 は NID または NSS 接頭辞のないタイプです。つまり、typeNameFormat QNdefRecord::TypeNameFormat type example.com:fは urn:nfc:ext:example.com:f ではない。 は空のレコードの初期ペイロードで、 または暗黙的に に変換できる型でなければならない。initialPayload QByteArray QByteArray

詳細はCreating specialized NDEF record classes のセクションを参照のこと。

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD()も参照のこと

© 2025 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.