diff options
-rw-r--r-- | examples/nfc/annotatedurl/annotatedurl.cpp | 4 | ||||
-rw-r--r-- | src/nfc/qnearfieldmanager.h | 4 | ||||
-rw-r--r-- | src/nfc/qnearfieldmanager_android.cpp | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/examples/nfc/annotatedurl/annotatedurl.cpp b/examples/nfc/annotatedurl/annotatedurl.cpp index cf7dd17a..a07aadcc 100644 --- a/examples/nfc/annotatedurl/annotatedurl.cpp +++ b/examples/nfc/annotatedurl/annotatedurl.cpp @@ -77,8 +77,8 @@ AnnotatedUrl::AnnotatedUrl(QObject *parent) SLOT(handleMessage(QNdefMessage,QNearFieldTarget*))); //! [QNearFieldManager register handler] - if (result != -1) - return; + if (result < 0) + qWarning() << "Platform does not support NDEF message handler registration"; manager->startTargetDetection(); connect(manager, SIGNAL(targetDetected(QNearFieldTarget*)), diff --git a/src/nfc/qnearfieldmanager.h b/src/nfc/qnearfieldmanager.h index 8c91a801..c367d875 100644 --- a/src/nfc/qnearfieldmanager.h +++ b/src/nfc/qnearfieldmanager.h @@ -71,6 +71,10 @@ public: bool startTargetDetection(); void stopTargetDetection(); + //TODO Qt 6 Consider removal of this registration mechanism + //None of the currently supported platforms supports the feature + //or in fact the implementation (on Android) is not what the + //function is supposed to do. int registerNdefMessageHandler(QObject *object, const char *method); int registerNdefMessageHandler(QNdefRecord::TypeNameFormat typeNameFormat, const QByteArray &type, diff --git a/src/nfc/qnearfieldmanager_android.cpp b/src/nfc/qnearfieldmanager_android.cpp index d1434840..d601a159 100644 --- a/src/nfc/qnearfieldmanager_android.cpp +++ b/src/nfc/qnearfieldmanager_android.cpp @@ -186,6 +186,10 @@ void QNearFieldManagerPrivateImpl::stopTargetDetection() updateReceiveState(); } +// FIXME This is supposed to be a platform registration. A message that +// matches the given NDEF filter should restart the current application. +// The implementation below only works as long as the current application +// is running. It is not a platform wide registration on Android. int QNearFieldManagerPrivateImpl::registerNdefMessageHandler(QObject *object, const QMetaMethod &method) { ndefMessageHandlers.append(QPair<QPair<int, QObject *>, QMetaMethod>(QPair<int, QObject *>(m_handlerID, object), method)); @@ -194,6 +198,7 @@ int QNearFieldManagerPrivateImpl::registerNdefMessageHandler(QObject *object, co return m_handlerID++; } +// FIXME see above int QNearFieldManagerPrivateImpl::registerNdefMessageHandler(const QNdefFilter &filter, QObject *object, const QMetaMethod &method) { |