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::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 は特殊化されたクラスの名前、 はカスタム・タイプに適切な で、 は 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.