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 레코드의 유형 이름 형식을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
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()도 참조하세요 .
© 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.