summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndré Klitzing <aklitzing@gmail.com>2019-01-11 13:38:37 +0100
committerAndré Klitzing <aklitzing@gmail.com>2019-01-14 09:12:02 +0000
commit1bba2694302b7200d62d715827f20e8f830d9e03 (patch)
tree09a1f44a1d9db8909632a9abb4adb3607f36c141 /src
parent0b4aadadf19adff87fd6a847458be742220fc8fd (diff)
Check for system feature PackageManager.FEATURE_NFC
Method enableForegroundDispatch and disableForegroundDispatch is not implemented on some WearOS devices and will throw an exception. Let's check if the NFC feature exists. java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at org.qtproject.qt5.android.bindings.QtApplication.invokeDelegateMethod(QtApplication.java:157) at org.qtproject.qt5.android.bindings.QtApplication.invokeDelegate(QtApplication.java:146) at org.qtproject.qt5.android.bindings.QtActivity.onResume(QtActivity.java:626) at com.governikus.ausweisapp2.MainActivity.onResume(MainActivity.java:139) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1355) at android.app.Activity.performResume(Activity.java:7117) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3556) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3621) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1638) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: java.lang.UnsupportedOperationException at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1315) at org.qtproject.qt5.android.nfc.QtNfc$1.run(QtNfc.java:135) at android.app.Activity.runOnUiThread(Activity.java:6184) at org.qtproject.qt5.android.nfc.QtNfc.start(QtNfc.java:111) at org.qtproject.qt5.android.QtNative.updateApplicationState(Native Method) at org.qtproject.qt5.android.QtNative.setApplicationState(QtNative.java:260) at org.qtproject.qt5.android.QtActivityDelegate.onResume(QtActivityDelegate.java:1098) ... 16 more See: https://stackoverflow.com/questions/48437854/huawei-watch-2-nfc-feature-not-available-android-wear-2-0 Change-Id: I0e2cad3dce1c3c0a2ea2545fcc6731e2621cdc38 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.java9
1 files changed, 7 insertions, 2 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 6b0fbcbd..19e645f5 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
@@ -54,6 +54,7 @@ import android.content.IntentFilter.MalformedMimeTypeException;
import android.os.Bundle;
import android.util.Log;
import android.content.BroadcastReceiver;
+import android.content.pm.PackageManager;
public class QtNfc
{
@@ -106,7 +107,9 @@ public class QtNfc
static public boolean start()
{
- if (m_adapter == null || m_activity == null) return false;
+ if (m_adapter == null || m_activity == null
+ || !m_activity.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC))
+ return false;
m_activity.runOnUiThread(new Runnable() {
public void run() {
@@ -143,7 +146,9 @@ public class QtNfc
static public boolean stop()
{
- if (m_adapter == null || m_activity == null) return false;
+ if (m_adapter == null || m_activity == null
+ || !m_activity.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC))
+ return false;
m_activity.runOnUiThread(new Runnable() {
public void run() {