summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew O'Doherty <andrew.odoherty@qt.io>2018-03-07 11:14:24 +0100
committerAndrew O'Doherty <andrew.odoherty@qt.io>2018-03-15 11:34:28 +0000
commit8cdd3ed68bacfccfdbe719ef03f9f57ff3aa48eb (patch)
treed0a6ccdb00f46adb1c4b6c9344253876f5b6fdcc /src
parent51d20c548e65b8020ba9c5834ea84d1df57b6cf9 (diff)
Add NFC API method isSupported
Add API method isSupported to allow to check if the device supports NFC Task-number: QTBUG-62169 Change-Id: I4ff7f06348ecc902e66ee79bdd8abde672578904 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/android/nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java5
-rw-r--r--src/nfc/android/androidjninfc.cpp5
-rw-r--r--src/nfc/android/androidjninfc_p.h1
-rw-r--r--src/nfc/qnearfieldmanager.cpp16
-rw-r--r--src/nfc/qnearfieldmanager.h1
-rw-r--r--src/nfc/qnearfieldmanager_android.cpp5
-rw-r--r--src/nfc/qnearfieldmanager_android_p.h1
-rw-r--r--src/nfc/qnearfieldmanager_neard.cpp15
-rw-r--r--src/nfc/qnearfieldmanager_neard_p.h2
-rw-r--r--src/nfc/qnearfieldmanager_p.h5
10 files changed, 55 insertions, 1 deletions
diff --git a/src/android/nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java b/src/android/nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java
index 345b87d3..6b0fbcbd 100644
--- a/src/android/nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java
+++ b/src/android/nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java
@@ -169,6 +169,11 @@ public class QtNfc
return m_adapter.isEnabled();
}
+ static public boolean isSupported()
+ {
+ return (m_adapter != null);
+ }
+
static public Intent getStartIntent()
{
Log.d(TAG, "getStartIntent");
diff --git a/src/nfc/android/androidjninfc.cpp b/src/nfc/android/androidjninfc.cpp
index f21d3b08..9a1c5227 100644
--- a/src/nfc/android/androidjninfc.cpp
+++ b/src/nfc/android/androidjninfc.cpp
@@ -63,6 +63,11 @@ bool isAvailable()
return QAndroidJniObject::callStaticMethod<jboolean>(nfcClassName,"isAvailable");
}
+bool isSupported()
+{
+ return QAndroidJniObject::callStaticMethod<jboolean>(nfcClassName,"isSupported");
+}
+
bool stopDiscovery()
{
return QAndroidJniObject::callStaticMethod<jboolean>(nfcClassName,"stop");
diff --git a/src/nfc/android/androidjninfc_p.h b/src/nfc/android/androidjninfc_p.h
index 746a93ee..60e9a107 100644
--- a/src/nfc/android/androidjninfc_p.h
+++ b/src/nfc/android/androidjninfc_p.h
@@ -71,6 +71,7 @@ bool startDiscovery();
bool stopDiscovery();
QAndroidJniObject getStartIntent();
bool isAvailable();
+bool isSupported();
bool registerListener(AndroidNfcListenerInterface *listener);
bool unregisterListener(AndroidNfcListenerInterface *listener);
QAndroidJniObject getTag(const QAndroidJniObject &intent);
diff --git a/src/nfc/qnearfieldmanager.cpp b/src/nfc/qnearfieldmanager.cpp
index 099a070c..0b9c9161 100644
--- a/src/nfc/qnearfieldmanager.cpp
+++ b/src/nfc/qnearfieldmanager.cpp
@@ -201,7 +201,10 @@ QNearFieldManager::~QNearFieldManager()
}
/*!
- Returns true if NFC functionality is available; otherwise returns false.
+ Returns \c true if the device has a NFC adapter and
+ it is turned on; otherwise returns \c false.
+
+ \sa isSupported()
*/
bool QNearFieldManager::isAvailable() const
{
@@ -211,6 +214,17 @@ bool QNearFieldManager::isAvailable() const
}
/*!
+ Returns \c true if the underlying device has a NFC adapter; otherwise returns \c false.
+
+ \sa isAvailable()
+*/
+bool QNearFieldManager::isSupported() const
+{
+ Q_D(const QNearFieldManager);
+
+ return d->isSupported();
+}
+/*!
\fn bool QNearFieldManager::startTargetDetection()
Starts detecting targets and returns true if target detection is
diff --git a/src/nfc/qnearfieldmanager.h b/src/nfc/qnearfieldmanager.h
index 9583e01f..1dcb3485 100644
--- a/src/nfc/qnearfieldmanager.h
+++ b/src/nfc/qnearfieldmanager.h
@@ -70,6 +70,7 @@ public:
~QNearFieldManager();
bool isAvailable() const;
+ bool isSupported() const;
void setTargetAccessModes(TargetAccessModes accessModes);
TargetAccessModes targetAccessModes() const;
diff --git a/src/nfc/qnearfieldmanager_android.cpp b/src/nfc/qnearfieldmanager_android.cpp
index a5693218..dd814787 100644
--- a/src/nfc/qnearfieldmanager_android.cpp
+++ b/src/nfc/qnearfieldmanager_android.cpp
@@ -176,6 +176,11 @@ bool QNearFieldManagerPrivateImpl::isAvailable() const
return AndroidNfc::isAvailable();
}
+bool QNearFieldManagerPrivateImpl::isSupported() const
+{
+ return AndroidNfc::isSupported();
+}
+
bool QNearFieldManagerPrivateImpl::startTargetDetection()
{
if (m_detecting)
diff --git a/src/nfc/qnearfieldmanager_android_p.h b/src/nfc/qnearfieldmanager_android_p.h
index 69c99709..563d26bc 100644
--- a/src/nfc/qnearfieldmanager_android_p.h
+++ b/src/nfc/qnearfieldmanager_android_p.h
@@ -76,6 +76,7 @@ public:
~QNearFieldManagerPrivateImpl();
virtual bool isAvailable() const;
+ bool isSupported() const override;
virtual bool startTargetDetection();
virtual void stopTargetDetection();
virtual int registerNdefMessageHandler(QObject *object, const QMetaMethod &method);
diff --git a/src/nfc/qnearfieldmanager_neard.cpp b/src/nfc/qnearfieldmanager_neard.cpp
index f1758ae9..450b9b42 100644
--- a/src/nfc/qnearfieldmanager_neard.cpp
+++ b/src/nfc/qnearfieldmanager_neard.cpp
@@ -114,6 +114,21 @@ bool QNearFieldManagerPrivateImpl::isAvailable() const
return false;
}
+bool QNearFieldManagerPrivateImpl::isSupported() const
+{
+ if (m_adapterPath.isEmpty()) {
+ qCWarning(QT_NFC_NEARD) << "no adapter found, neard daemon running?";
+ return false;
+ }
+
+ if (!m_neardHelper->dbusObjectManager()->isValid() || m_adapterPath.isNull()) {
+ qCWarning(QT_NFC_NEARD) << "dbus object manager invalid or adapter path invalid";
+ return false;
+ }
+
+ return true;
+}
+
bool QNearFieldManagerPrivateImpl::startTargetDetection()
{
qCDebug(QT_NFC_NEARD) << "starting target detection";
diff --git a/src/nfc/qnearfieldmanager_neard_p.h b/src/nfc/qnearfieldmanager_neard_p.h
index b50f947a..cf026982 100644
--- a/src/nfc/qnearfieldmanager_neard_p.h
+++ b/src/nfc/qnearfieldmanager_neard_p.h
@@ -75,6 +75,8 @@ public:
bool isAvailable() const;
+ bool isSupported() const override;
+
bool startTargetDetection();
void stopTargetDetection();
diff --git a/src/nfc/qnearfieldmanager_p.h b/src/nfc/qnearfieldmanager_p.h
index 7e461da8..8e86ce4b 100644
--- a/src/nfc/qnearfieldmanager_p.h
+++ b/src/nfc/qnearfieldmanager_p.h
@@ -82,6 +82,11 @@ public:
return false;
}
+ virtual bool isSupported() const
+ {
+ return false;
+ }
+
virtual bool startTargetDetection()
{
return false;