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.