Auf dieser Seite

Änderungen an Qt NFC

Qt 6 sind das Ergebnis bewusster Bemühungen, das Framework effizienter und benutzerfreundlicher zu gestalten.

Wir bemühen uns, bei jeder Veröffentlichung die Binär- und Quellkompatibilität für alle öffentlichen APIs zu gewährleisten. 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 Hinweise 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 “ dem angegebenen Filter entspricht. Die Methode gibt bei erfolgreicher Übereinstimmung „ true “ und andernfalls „ false “ zurück.

Erweitert QNearFieldTarget::Type

Die Enumeration wurde um zwei weitere Typen erweitert:

Änderungen an den Funktionen und Methoden

Umbenennung von QNearFieldManager::isAvailable()

Die Methode „ QNearFieldManager::isAvailable() “ wurde in „ QNearFieldManager::isEnabled()“ umbenannt.

Argument für die Zugriffsmethode hinzugefügt QNearFieldManager::isSupported

Das Argument „ accessMethod “ ermöglicht es, zu prüfen, ob eine bestimmte Funktion unterstützt wird. Dies ist relevant, da verschiedene Plattformen oder Betriebssystemversionen unterschiedliche Optionen unterstützen können.

Argument „Zugriffsmethode“ zu QNearFieldManager::startTargetDetection

Das Argument „ accessMethod “ ermöglicht das Scannen nach NFC-Tags mit der angegebenen Zugriffsmethode.

„ QNdefNfcSmartPosterRecord::typeInfo “ wurde von „ QByteArray “ geändert in QString

Gemäß der NDEF-Smart-Poster-Spezifikation ist der Typ eine UTF-8-formatierte Zeichenkette. Dies betrifft die Methoden „ QNdefNfcSmartPosterRecord::typeInfo()“ und „ QNdefNfcSmartPosterRecord::setTypeInfo()“.

Der 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

QNearFieldTarget::url wurde entfernt

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

Entfernt: QNearFieldTarget::sendCommands

In Qt 5 war die Methode nicht besonders hilfreich, da sie keine Möglichkeit bot, die Ergebnisse von Zwischenschritten zu verfolgen. Normalerweise muss ein weiterer Befehl erst dann gesendet werden, wenn der vorherige Befehl erfolgreich ausgeführt wurde.

Der richtige Ansatz wäre, manuell eine Warteschlange mit Befehlen zu erstellen, mit ` QNearFieldTarget::sendCommand ` einen Befehl zu senden und mit ` QNearFieldTarget::requestCompleted ` oder ` QNearFieldTarget::error ` die Ergebnisse jedes Befehls einzeln zu verarbeiten.

QNearFieldTarget::keepConnection entfernt

Die Methoden „ QNearFieldTarget::keepConnection() “ und „ QNearFieldTarget::setKeepConnection() “ wurden entfernt. Das Aufrechterhalten der Verbindung ist vorerst das Standardverhalten.

QNearFieldTarget::isProcessingCommand entfernt

Die Methode wurde nie implementiert und gab stets „ false “ zurück.

QNearFieldTarget::setResponseForRequest wurde zur privaten API gemacht

Die Methode sollte nicht als öffentliche API verfügbar sein. Verwenden Sie „ QNearFieldTarget::ndefMessageRead “ oder „ QNearFieldTarget::requestResponse “, um die Daten von einem NFC-Tag auszulesen.

„QNearFieldTarget::handleResponse“ wurde entfernt

Die Methode wurde entfernt, da sie den Aufruf lediglich an ` QNearFieldManager::setResponseForRequest` weiterleitete, das nun zur privaten API gehört.

QNearFieldTarget::reportError wurde zur privaten API gemacht

Stattdessen kann das Signal „ QNearFieldTarget::error “ 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. Mit dem Parameter „ id “ lässt sich überprüfen, welche Anforderung tatsächlich abgeschlossen wurde.

Entfernt: QNearFieldManager::(un)registerNdefMessageHandler

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

Verwenden Sie „ QNearFieldTarget::ndefMessageRead()“ und „ QNdefFilter::match()“, um die NDEF-Nachrichten zu erkennen und die benötigten herauszufiltern.

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

QNearFieldManager::TargetAccessModes wurde entfernt

Die Enumeration „ TargetAccessModes “ wurde zusammen mit den Getter- und Setter-Methoden (QNearFieldManager::setTargetAccessModes() und QNearFieldManager::targetAccessModes()) entfernt.

Diese Funktion wird auf Android- und iOS-Plattformen nicht unterstützt.

QNearFieldShareManager und QNearFieldShareTarget entfernt

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

QML-API entfernt

Die Unterstützung für die QML-API wurde eingestellt.

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