summaryrefslogtreecommitdiffstats
path: root/src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java')
-rw-r--r--src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java b/src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java
new file mode 100644
index 00000000..e70ec9a5
--- /dev/null
+++ b/src/android/nfc/src/org/qtproject/qt/android/nfc/QtNfcBroadcastReceiver.java
@@ -0,0 +1,37 @@
+// Copyright (C) 2018 Governikus GmbH & Co. KG
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+package org.qtproject.qt.android.nfc;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.nfc.NfcAdapter;
+
+public class QtNfcBroadcastReceiver extends BroadcastReceiver
+{
+ final private long qtObject;
+ final private Context qtContext;
+
+ public QtNfcBroadcastReceiver(long obj, Context context)
+ {
+ qtObject = obj;
+ qtContext = context;
+ IntentFilter filter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
+ qtContext.registerReceiver(this, filter);
+ }
+
+ public void unregisterReceiver()
+ {
+ qtContext.unregisterReceiver(this);
+ }
+
+ public void onReceive(Context context, Intent intent)
+ {
+ final int state = intent.getIntExtra(NfcAdapter.EXTRA_ADAPTER_STATE, NfcAdapter.STATE_OFF);
+ jniOnReceive(qtObject, state);
+ }
+
+ public native void jniOnReceive(long qtObject, int state);
+}