QNdefRecord Class

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

Header: #include <QNdefRecord>
CMake: find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
Inherited By:

QNdefNfcIconRecord, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, and 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 Text レコードであるかどうかをテストし、そこからテキスト情報を抽出する方法を示します。

if (record.isRecordType<QNdefNfcTextRecord>()) {
    QNdefNfcTextRecord textRecord(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()も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。