Changes to Qt NFC
Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.
We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.
In this topic we summarize those changes in Qt NFC, and provide guidance to handle them.
Use this method to clear an NDEF record.
Use this method to check if a QNdefMessage matches the given filter. The method returns
true in case of successful match and
The enum was extended with two more types:
QNearFieldManager::isAvailable() was renamed to QNearFieldManager::isEnabled().
Added access method argument to QNearFieldManager::isSupported
accessMethod argument allows to check if a specific feature is supported. This is relevant because different platforms or versions of operating systems can support different options.
Added access method argument to QNearFieldManager::startTargetDetection
accessMethod argument allows to scan for NFC tags with the given access method.
Changed QNdefNfcSmartPosterRecord::typeInfo from QByteArray to QString
Updated return type of QNdefFilter::appendRecord
QNdefFilter::appendRecord now performs a basic validation of input parameters and returns a boolean value indicating if the record is appended to the filter or not.
The method was never implemented in the existing subclasses of QNearFieldTarget.
In Qt 5, the method was not very helpful because it didn't provide a way to track the results of intermediate commands. Normally, an additional command needs to be sent only when the previous command is successfully executed.
The correct approach would be to manually create a queue of commands, use QNearFieldTarget::sendCommand to send a command and QNearFieldTarget::requestCompleted or QNearFieldTarget::error to handle the results of each command individually.
QNearFieldTarget::setKeepConnection() were removed. Keeping the connection is the default behavior for now.
The method was never implemented and always returned
The method was removed as it just forwarded the call to
QNearFieldManager::setResponseForRequest, which became private API.
A QNearFieldTarget::error signal can be used instead.
The QNearFieldTarget::requestCompleted signal is used for both NDEF messages and custom commands. The
id parameter can be used to check which request is actually completed.
QNearFieldTarget::unregisterNdefMessageHandler were removed.
Note: The application can still be automatically started once the NDEF Tag is touched. The Annotated URL example shows how to achieve it on Android.
TargetAccessModes enum was removed together with the getter and setter methods (
The feature is not supported on Android and iOS platforms.
File sharing via NFC is deprecated on Android in API 29. Other technologies should be used instead.
The support for QML API is discontinued.
© 2022 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.