QNearFieldTarget Class

Die Klasse QNearFieldTarget bietet eine Schnittstelle für die Kommunikation mit einem Zielgerät. Mehr...

Kopfzeile: #include <QNearFieldTarget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Nfc)
target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
Vererbt: QObject

Öffentliche Typen

class RequestId
enum AccessMethod { UnknownAccess, NdefAccess, TagTypeSpecificAccess, AnyAccess }
flags AccessMethods
enum Error { NoError, UnknownError, UnsupportedError, TargetOutOfRangeError, NoResponseError, …, UnsupportedTargetError }
enum Type { ProprietaryTag, NfcTagType1, NfcTagType2, NfcTagType3, NfcTagType4, …, MifareTag }

Öffentliche Funktionen

QNearFieldTarget(QObject *parent = nullptr)
virtual ~QNearFieldTarget()
QNearFieldTarget::AccessMethods accessMethods() const
bool disconnect()
bool hasNdefMessage()
int maxCommandLength() const
QNearFieldTarget::RequestId readNdefMessages()
QVariant requestResponse(const QNearFieldTarget::RequestId &id) const
QNearFieldTarget::RequestId sendCommand(const QByteArray &command)
QNearFieldTarget::Type type() const
QByteArray uid() const
bool waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000)
QNearFieldTarget::RequestId writeNdefMessages(const QList<QNdefMessage> &messages)

Signale

void disconnected()
void error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
void ndefMessageRead(const QNdefMessage &message)
void requestCompleted(const QNearFieldTarget::RequestId &id)

Detaillierte Beschreibung

QNearFieldTarget bietet eine generische Schnittstelle für die Kommunikation mit einem NFC-Zielgerät. Sowohl NFC Forum Geräte als auch NFC Forum Tag Targets werden von dieser Klasse unterstützt. Alle zielspezifischen Klassen sind Unterklassen dieser Klasse.

Die Funktion type() kann verwendet werden, um den Typ des Zielgeräts zu ermitteln. Die Funktion uid() gibt den eindeutigen Bezeichner des Ziels zurück. Die von der Funktion accessMethods() zurückgegebenen AccessMethods -Flags können getestet werden, um festzustellen, welche Zugriffsmethoden von dem Zielgerät unterstützt werden.

Wenn das Ziel NdefAccess unterstützt, kann hasNdefMessage() aufgerufen werden, um zu testen, ob das Ziel über eine gespeicherte NDEF-Nachricht verfügt. Die Funktionen readNdefMessages() und writeNdefMessages() können verwendet werden, um die NDEF-Nachricht zu erhalten und zu setzen.

Wenn das Ziel TagTypeSpecificAccess unterstützt, kann sendCommand() verwendet werden, um einen einzelnen proprietären Befehl an das Ziel zu senden und die Antwort abzurufen.

Dokumentation der Mitgliedstypen

enum QNearFieldTarget::AccessMethod
flags QNearFieldTarget::AccessMethods

Diese Aufzählung beschreibt die Zugriffsmethoden, die ein Nahfeldtarget unterstützt.

KonstanteWertBeschreibung
QNearFieldTarget::UnknownAccess0x00Das Target unterstützt eine unbekannte Zugriffsart.
QNearFieldTarget::NdefAccess0x01Das Ziel unterstützt das Lesen und Schreiben von NDEF-Nachrichten mit readNdefMessages() und writeNdefMessages().
QNearFieldTarget::TagTypeSpecificAccess0x02Das Ziel unterstützt das Senden von Tagtyp-spezifischen Befehlen unter Verwendung von sendCommand().
QNearFieldTarget::AnyAccess0xffDas Ziel unterstützt jede der bekannten Zugriffsarten.

Der Typ AccessMethods ist ein Typedef für QFlags<AccessMethod>. Er speichert eine OR-Kombination von AccessMethod-Werten.

enum QNearFieldTarget::Error

Diese Aufzählung beschreibt die Fehlercodes, die ein Nahfeldziel meldet.

KonstanteWertBeschreibung
QNearFieldTarget::NoError0Es ist kein Fehler aufgetreten.
QNearFieldTarget::UnknownError1Ein nicht identifizierter Fehler ist aufgetreten.
QNearFieldTarget::UnsupportedError2Die angeforderte Operation wird von diesem Nahfeldziel nicht unterstützt.
QNearFieldTarget::TargetOutOfRangeError3Das Ziel ist nicht mehr in Reichweite.
QNearFieldTarget::NoResponseError4Das Ziel hat nicht geantwortet.
QNearFieldTarget::ChecksumMismatchError5Die Prüfsumme hat eine verfälschte Antwort erkannt.
QNearFieldTarget::InvalidParametersError6Es wurden ungültige Parameter an eine tag-spezifische Funktion übergeben.
QNearFieldTarget::ConnectionError7Die Verbindung zum Ziel konnte nicht hergestellt werden.
QNearFieldTarget::NdefReadError8Das Lesen von NDEF-Nachrichten aus dem Ziel ist fehlgeschlagen.
QNearFieldTarget::NdefWriteError9Das Schreiben von NDEF-Nachrichten in das Ziel ist fehlgeschlagen.
QNearFieldTarget::CommandError10Das Senden eines Befehls an das Ziel ist fehlgeschlagen.
QNearFieldTarget::TimeoutError11Die Anfrage konnte nicht innerhalb der in waitForRequestCompleted() angegebenen Zeit abgeschlossen werden.
QNearFieldTarget::UnsupportedTargetError12Das verwendete Ziel wird nicht unterstützt. Dies kann z. B. bei fehlenden erforderlichen Berechtigungs- und/oder Datenschutzeinstellungen der Client-Anwendung auftreten.

enum QNearFieldTarget::Type

Diese Aufzählung beschreibt den Typ der Marke, als die das Ziel erkannt wird.

KonstanteWertBeschreibung
QNearFieldTarget::ProprietaryTag0Ein nicht identifiziertes proprietäres Ziel-Tag.
QNearFieldTarget::NfcTagType11Ein NFC-Tag Typ 1 Ziel.
QNearFieldTarget::NfcTagType22Ein NFC-Tag Typ 2 Ziel.
QNearFieldTarget::NfcTagType33Ein NFC-Tag Typ 3 Ziel.
QNearFieldTarget::NfcTagType44Ein NFC-Tag-Typ-4-Ziel. Dieser Wert wird verwendet, wenn der NfcTagType4 nicht weiter durch NfcTagType4A oder NfcTagType4B unten verfeinert werden kann.
QNearFieldTarget::NfcTagType4A5Ein NFC-Tag-Typ-4-Ziel auf der Grundlage von ISO/IEC 14443-3A.
QNearFieldTarget::NfcTagType4B6Ein NFC-Tag-Typ-4-Ziel auf der Grundlage von ISO/IEC 14443-3B.
QNearFieldTarget::MifareTag7Ein Mifare-Ziel.

Dokumentation der Mitgliedsfunktionen

[explicit] QNearFieldTarget::QNearFieldTarget(QObject *parent = nullptr)

Konstruiert ein neues Nahfeldziel mit parent.

[virtual noexcept] QNearFieldTarget::~QNearFieldTarget()

Zerstört das Ziel im Nahfeld.

QNearFieldTarget::AccessMethods QNearFieldTarget::accessMethods() const

Gibt die von diesem Nahfeldziel unterstützten Zugriffsmethoden zurück.

bool QNearFieldTarget::disconnect()

Schließt die Verbindung zum Ziel, um die Kommunikation mit dem Ziel von einer anderen Instanz aus zu ermöglichen. Die Verbindung wird auch geschlossen, wenn die QNearFieldTarget zerstört wird. Eine Verbindung zum Zielgerät wird (wieder) hergestellt, um einen Befehl zu verarbeiten oder eine NDEF-Nachricht zu lesen/schreiben.

Gibt true nur zurück, wenn eine bestehende Verbindung erfolgreich geschlossen wurde; andernfalls wird false zurückgegeben.

[signal] void QNearFieldTarget::disconnected()

Dieses Signal wird ausgesendet, wenn sich das Ziel im Nahfeld aus der Nähe entfernt.

[signal] void QNearFieldTarget::error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)

Dieses Signal wird ausgegeben, wenn bei der Verarbeitung der Anfrage id ein Fehler auftritt. Der Parameter error beschreibt den Fehler.

bool QNearFieldTarget::hasNdefMessage()

Gibt true zurück, wenn mindestens eine NDEF-Nachricht auf dem Nahfeldziel gespeichert ist; andernfalls wird false zurückgegeben.

int QNearFieldTarget::maxCommandLength() const

Gibt die maximale Anzahl von Bytes zurück, die mit sendCommand gesendet werden können. 0 wird zurückgegeben, wenn das Ziel das Senden von Tag-Typ-spezifischen Befehlen nicht unterstützt.

Siehe auch sendCommand().

[signal] void QNearFieldTarget::ndefMessageRead(const QNdefMessage &message)

Dieses Signal wird ausgegeben, wenn ein kompletter NDEF message vom Ziel gelesen wurde.

Siehe auch readNdefMessages().

QNearFieldTarget::RequestId QNearFieldTarget::readNdefMessages()

Beginnt mit dem Lesen von NDEF-Nachrichten, die auf dem Nahfeldziel gespeichert sind. Gibt eine Anforderungs-ID zurück, die zur Verfolgung des Abschlussstatus der Anforderung verwendet werden kann. Eine ungültige Anforderungs-ID wird zurückgegeben, wenn das Ziel das Lesen von NDEF-Nachrichten nicht unterstützt.

Ein ndefMessageRead()-Signal wird für jede NDEF-Nachricht ausgegeben. Das Signal requestCompleted() wird ausgegeben, wenn alle NDEF-Nachrichten gelesen worden sind. Das Signal error() wird ausgegeben, wenn ein Fehler auftritt.

Hinweis: Der Versuch, eine NDEF-Nachricht von einem Tag zu lesen, der sich gemäß der Definition des NFC-Forums im Zustand INITIALIZED befindet, schlägt mit dem Signal NdefReadError fehl, da der Tag zwar für die Unterstützung von NDEF formatiert ist, aber noch keine Nachricht enthält.

[signal] void QNearFieldTarget::requestCompleted(const QNearFieldTarget::RequestId &id)

Dieses Signal wird ausgegeben, wenn eine Anfrage id abgeschlossen ist.

Siehe auch sendCommand().

QVariant QNearFieldTarget::requestResponse(const QNearFieldTarget::RequestId &id) const

Gibt die dekodierte Antwort für die Anfrage id zurück. Wenn die Anfrage unbekannt ist oder noch nicht abgeschlossen wurde, wird ein ungültiger QVariant zurückgegeben.

QNearFieldTarget::RequestId QNearFieldTarget::sendCommand(const QByteArray &command)

Sendet command an das Nahfeldziel. Gibt eine Anforderungs-ID zurück, die zur Verfolgung des Abschlussstatus der Anforderung verwendet werden kann. Eine ungültige Anforderungs-ID wird zurückgegeben, wenn das Ziel das Senden von tag-typspezifischen Befehlen nicht unterstützt.

Das Signal requestCompleted() wird bei erfolgreichem Abschluss der Anfrage ausgegeben; andernfalls wird das Signal error() ausgegeben.

Sobald die Anfrage erfolgreich abgeschlossen ist, kann die Antwort von der Funktion requestResponse() abgerufen werden. Die Antwort auf diese Anfrage ist ein QByteArray.

Siehe auch requestCompleted() und waitForRequestCompleted().

QNearFieldTarget::Type QNearFieldTarget::type() const

Gibt den Tag-Typ dieses Nahfeldziels zurück.

QByteArray QNearFieldTarget::uid() const

Gibt die UID des Nahfeldziels zurück.

Hinweis: Unter iOS gibt diese Funktion ein leeres QByteArray für ein Nahfeldziel zurück, das mit der Methode NdefAccess entdeckt wurde.

Siehe auch QNearFieldTarget::AccessMethod.

bool QNearFieldTarget::waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000)

Wartet bis zu msecs Millisekunden auf den Abschluss der Anfrage id. Gibt true zurück, wenn die Anfrage erfolgreich abgeschlossen wurde und das Signal requestCompeted() ausgegeben wird; andernfalls false.

QNearFieldTarget::RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)

Schreibt die NDEF-Nachrichten in messages an das Ziel. Gibt eine Anforderungs-ID zurück, die zur Verfolgung des Abschlussstatus der Anforderung verwendet werden kann. Eine ungültige Anforderungs-ID wird zurückgegeben, wenn das Ziel das Lesen von NDEF-Nachrichten nicht unterstützt.

Das Signal requestCompleted() wird ausgegeben, wenn der Schreibvorgang erfolgreich abgeschlossen wurde; andernfalls wird das Signal error() ausgegeben.

© 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.