/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt local connectivty modules. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \example annotatedurl \title Annotated URL Example \brief An example showing reading from formatted NFC Data Exchange Format (NDEF) messages. The Annotated URL example displays the contents of specifically formatted NFC Data Exchange Format (NDEF) messages read from an NFC Tag. The NDEF message should contain a URI record, an optional \c image/* MIME record, and one or more localized Text records. This is the initial state of the example: \image annotatedurl.png In this example the NFC Tag used contains a text record. The UI gets updated accordingly to: \image annotatedurl2.png \section1 AnnotatedUrl Class Definition The \c AnnotatedUrl class wraps the \c QNearFieldManager, the class providing the NFC Tag detection functionality. NDEF messages are read by the QNearFieldManager and forwarded to a handler contained in the \c AnnotatedUrl class. After parsing the NDEF message the class emits the signal AnnotatedUrl::annotatedUrl(const QUrl &url, const QString &title, const QPixmap &pixmap). The UI reacts to the signal displaying the contents of the NDEF message. \snippet annotatedurl/annotatedurl.h 0 \section1 AnnotatedUrl Handler Implementation NFC messages read by the \c QNearFieldManager are forwarded to AnnotatedUrl::handleMessage. The callback signature details can be read in \l{QNearFieldManager::registerNdefMessageHandler}. \snippet annotatedurl/annotatedurl.cpp handleMessage 1 Because NFC messages are composed of several NDEF records, looping through all of the records allows the extraction of the 3 parameters to be displayed in the UI: the Uri, the Title and the Pixmap: \snippet annotatedurl/annotatedurl.cpp handleMessage 2 \snippet annotatedurl/annotatedurl.cpp handleMessage 3 Finally after having extracted the parameters of the NFC message the corresponding signal is emitted so that the UI can handle it. \snippet annotatedurl/annotatedurl.cpp handleMessage 4 \include examples-run.qdocinc \sa {Qt NFC} */