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.
Konstante | Wert | Beschreibung |
---|---|---|
QNearFieldTarget::UnknownAccess | 0x00 | Das Target unterstützt eine unbekannte Zugriffsart. |
QNearFieldTarget::NdefAccess | 0x01 | Das Ziel unterstützt das Lesen und Schreiben von NDEF-Nachrichten mit readNdefMessages() und writeNdefMessages(). |
QNearFieldTarget::TagTypeSpecificAccess | 0x02 | Das Ziel unterstützt das Senden von Tagtyp-spezifischen Befehlen unter Verwendung von sendCommand(). |
QNearFieldTarget::AnyAccess | 0xff | Das 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.
Konstante | Wert | Beschreibung |
---|---|---|
QNearFieldTarget::NoError | 0 | Es ist kein Fehler aufgetreten. |
QNearFieldTarget::UnknownError | 1 | Ein nicht identifizierter Fehler ist aufgetreten. |
QNearFieldTarget::UnsupportedError | 2 | Die angeforderte Operation wird von diesem Nahfeldziel nicht unterstützt. |
QNearFieldTarget::TargetOutOfRangeError | 3 | Das Ziel ist nicht mehr in Reichweite. |
QNearFieldTarget::NoResponseError | 4 | Das Ziel hat nicht geantwortet. |
QNearFieldTarget::ChecksumMismatchError | 5 | Die Prüfsumme hat eine verfälschte Antwort erkannt. |
QNearFieldTarget::InvalidParametersError | 6 | Es wurden ungültige Parameter an eine tag-spezifische Funktion übergeben. |
QNearFieldTarget::ConnectionError | 7 | Die Verbindung zum Ziel konnte nicht hergestellt werden. |
QNearFieldTarget::NdefReadError | 8 | Das Lesen von NDEF-Nachrichten aus dem Ziel ist fehlgeschlagen. |
QNearFieldTarget::NdefWriteError | 9 | Das Schreiben von NDEF-Nachrichten in das Ziel ist fehlgeschlagen. |
QNearFieldTarget::CommandError | 10 | Das Senden eines Befehls an das Ziel ist fehlgeschlagen. |
QNearFieldTarget::TimeoutError | 11 | Die Anfrage konnte nicht innerhalb der in waitForRequestCompleted() angegebenen Zeit abgeschlossen werden. |
QNearFieldTarget::UnsupportedTargetError | 12 | Das 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.
Konstante | Wert | Beschreibung |
---|---|---|
QNearFieldTarget::ProprietaryTag | 0 | Ein nicht identifiziertes proprietäres Ziel-Tag. |
QNearFieldTarget::NfcTagType1 | 1 | Ein NFC-Tag Typ 1 Ziel. |
QNearFieldTarget::NfcTagType2 | 2 | Ein NFC-Tag Typ 2 Ziel. |
QNearFieldTarget::NfcTagType3 | 3 | Ein NFC-Tag Typ 3 Ziel. |
QNearFieldTarget::NfcTagType4 | 4 | Ein NFC-Tag-Typ-4-Ziel. Dieser Wert wird verwendet, wenn der NfcTagType4 nicht weiter durch NfcTagType4A oder NfcTagType4B unten verfeinert werden kann. |
QNearFieldTarget::NfcTagType4A | 5 | Ein NFC-Tag-Typ-4-Ziel auf der Grundlage von ISO/IEC 14443-3A. |
QNearFieldTarget::NfcTagType4B | 6 | Ein NFC-Tag-Typ-4-Ziel auf der Grundlage von ISO/IEC 14443-3B. |
QNearFieldTarget::MifareTag | 7 | Ein 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.