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>()) {
QNdefNfcTextRecord textRecord(record);
qDebug() << textRecord.text();
}専用のNDEFレコードクラスの作成
Q_DECLARE_NDEF_RECORD() およびQ_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD() マクロを使用すると、特化された NDEF レコードクラスを簡単に作成できます。次の例は、単一の 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::Empty | 0x00 | 空の NDEF レコード。このレコードにはペイロードが含まれていません。 |
QNdefRecord::NfcRtd | 0x01 | NDEF レコード型は、NFC RTD 仕様によって定義されています |
QNdefRecord::Mime | 0x02 | NDEFレコードタイプは、RFC 2046に記載されている構成に従う |
QNdefRecord::Uri | 0x03 | このNDEFレコードタイプは、RFC 3986に記述されている構成に従う |
QNdefRecord::ExternalRtd | 0x04 | このNDEFレコード型は、NFC RTD仕様で規定されている外部型名の構成に従う |
QNdefRecord::Unknown | 0x05 | レコードのタイプは不明であり、これ以上の文脈がない限り、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 は特殊化されたクラスの名前、typeNameFormat はカスタム型に適したQNdefRecord::TypeNameFormat 、type は NID または NSS のプレフィックスを含まない型です。つまり、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 は特化クラスの名前、typeNameFormat はカスタム型に対応するQNdefRecord::TypeNameFormat 、type はNIDまたはNSSのプレフィックスを含まない型です。 つまり、urn:nfc:ext:example.com:f ではなくexample.com:fとなります。initialPayload は空のレコードの初期ペイロードであり、QByteArray またはQByteArray に暗黙的に変換可能な型でなければなりません。
詳細については、「Creating specialized NDEF record classes 」のセクションを参照してください。
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.