summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/nfc/annotatedurl/annotatedurl.cpp4
-rw-r--r--src/nfc/qnearfieldmanager.h4
-rw-r--r--src/nfc/qnearfieldmanager_android.cpp5
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)
{