Die Änderungen an Qt NFC

Qt 6 sind das Ergebnis des bewussten Bemühens, das Framework effizienter und benutzerfreundlicher zu gestalten.

Wir versuchen, die Binär- und Quellcodekompatibilität für alle öffentlichen APIs in jeder Version zu erhalten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.

In diesem Thema fassen wir diese Änderungen in Qt NFC zusammen und geben eine Anleitung zu deren Handhabung.

Neue Funktionen und Methoden

Hinzugefügt QNdefRecord::clear()

Verwenden Sie diese Methode, um einen NDEF-Datensatz zu löschen.

Hinzugefügt QNdefFilter::match()

Verwenden Sie diese Methode, um zu prüfen, ob ein QNdefMessage mit dem angegebenen Filter übereinstimmt. Die Methode gibt im Falle einer erfolgreichen Übereinstimmung true und andernfalls false zurück.

Erweitert QNearFieldTarget::Type

Die Aufzählung wurde um zwei weitere Typen erweitert:

Änderungen in den Funktionen und Methoden

Umbenannt in QNearFieldManager::isAvailable()

Die Funktion QNearFieldManager::isAvailable() wurde umbenannt in QNearFieldManager::isEnabled().

Zugriffsmethodenargument hinzugefügt zu QNearFieldManager::isSupported

Mit dem Argument accessMethod kann geprüft werden, ob ein bestimmtes Feature unterstützt wird. Dies ist relevant, da verschiedene Plattformen oder Versionen von Betriebssystemen verschiedene Optionen unterstützen können.

Argument für Zugriffsmethode hinzugefügt zu QNearFieldManager::startTargetDetection

Das Argument accessMethod erlaubt es, nach NFC-Tags mit der angegebenen Zugriffsmethode zu suchen.

Geändert QNdefNfcSmartPosterRecord::typeInfo von QByteArray zu QString

Gemäß der NDEF-Smart-Poster-Spezifikation ist der Typ ein UTF-8-formatierter String. Dies betrifft die Methoden QNdefNfcSmartPosterRecord::typeInfo() und QNdefNfcSmartPosterRecord::setTypeInfo().

Aktualisierter Rückgabetyp von QNdefFilter::appendRecord

QNdefFilter::appendRecord führt nun eine grundlegende Validierung der Eingabeparameter durch und gibt einen booleschen Wert zurück, der angibt, ob der Datensatz an den Filter angehängt wird oder nicht.

Entfernte Funktionen und Methoden

Entfernt QNearFieldTarget::url

Die Methode wurde nie in den bestehenden Unterklassen von QNearFieldTarget implementiert.

Entfernt QNearFieldTarget::sendCommands

In Qt 5 war die Methode nicht sehr hilfreich, da sie keine Möglichkeit bot, die Ergebnisse von Zwischenbefehlen zu verfolgen. Normalerweise muss ein zusätzlicher Befehl nur dann gesendet werden, wenn der vorherige Befehl erfolgreich ausgeführt wurde.

Der richtige Ansatz wäre, manuell eine Warteschlange von Befehlen zu erstellen, QNearFieldTarget::sendCommand zu verwenden, um einen Befehl zu senden und QNearFieldTarget::requestCompleted oder QNearFieldTarget::error, um die Ergebnisse jedes einzelnen Befehls zu behandeln.

QNearFieldTarget::keepConnection entfernt

Die Methoden QNearFieldTarget::keepConnection() und QNearFieldTarget::setKeepConnection() wurden entfernt. Das Beibehalten der Verbindung ist jetzt das Standardverhalten.

QNearFieldTarget::isProcessingCommand entfernt

Die Methode wurde nie implementiert und gab immer false zurück.

QNearFieldTarget::setResponseForRequest private API gemacht

Die Methode sollte nicht als öffentliche API veröffentlicht werden. Verwenden Sie QNearFieldTarget::ndefMessageRead oder QNearFieldTarget::requestResponse, um die Daten von einem NFC-Tag zu lesen.

Entfernt QNearFieldTarget::handleResponse

Die Methode wurde entfernt, da sie den Aufruf nur an QNearFieldManager::setResponseForRequest weiterleitete, was zu einer privaten API wurde.

QNearFieldTarget::reportError zu einer privaten API gemacht

Stattdessen kann ein QNearFieldTarget::error Signal verwendet werden.

Das Signal QNearFieldTarget::ndefMessagesWritten wurde entfernt.

Das Signal QNearFieldTarget::requestCompleted wird sowohl für NDEF-Nachrichten als auch für benutzerdefinierte Befehle verwendet. Der Parameter id kann verwendet werden, um zu überprüfen, welche Anforderung tatsächlich abgeschlossen ist.

QNearFieldManager::(un)registerNdefMessageHandler entfernt

Die Methoden QNearFieldTarget::registerNdefMessageHandler und QNearFieldTarget::unregisterNdefMessageHandler wurden entfernt.

Verwenden Sie QNearFieldTarget::ndefMessageRead() und QNdefFilter::match(), um die NDEF-Nachrichten zu erkennen und die erforderlichen Nachrichten zu filtern.

Hinweis: Die Anwendung kann weiterhin automatisch gestartet werden, sobald das NDEF-Tag berührt wird. Das Beispiel "Annotated URL" zeigt, wie man dies unter Android erreichen kann.

Entfernte QNearFieldManager::TargetAccessModes

Das Enum TargetAccessModes wurde zusammen mit den Getter- und Setter-Methoden (QNearFieldManager::setTargetAccessModes() und QNearFieldManager::targetAccessModes()) entfernt.

Die Funktion wird auf den Plattformen Android und iOS nicht unterstützt.

QNearFieldShareManager und QNearFieldShareTarget wurden entfernt

Die Dateifreigabe über NFC ist auf Android in API 29 veraltet. Stattdessen sollten andere Technologien verwendet werden.

QML API wurde entfernt

Die Unterstützung für QML API wird eingestellt.

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