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