From b6842e06a57bb7a3457b1b4c13f395893f037a5d Mon Sep 17 00:00:00 2001
From: Oleg Evseev <ev.mipt@gmail.com>
Date: Tue, 14 Mar 2017 12:34:41 +0300
Subject: [PATCH] Fix detecting simple NFC tags

Before this patch Qt NFC detects only NDEF tags and signals targetDetected/targetLost are never fired for simple tags

Task-number: QTBUG-59455
Change-Id: Ic868b6d66f35f790f6aba0ec30afc96fa32a5b6a
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Oleg Evseev <ev.mipt@gmail.com>
---
 .../src/org/qtproject/qt5/android/nfc/QtNfc.java  | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 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 25c560f8..345b87d3 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
@@ -89,7 +89,7 @@ public class QtNfc
 
         //Log.d(TAG, "Pending intent:" + m_pendingIntent);
 
-        IntentFilter filter = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
+        IntentFilter filter = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
 
         m_filters = new IntentFilter[]{
             filter
@@ -111,18 +111,21 @@ public class QtNfc
         m_activity.runOnUiThread(new Runnable() {
             public void run() {
                 //Log.d(TAG, "Enabling NFC");
-                IntentFilter[] filters = new IntentFilter[2];
+                IntentFilter[] filters = new IntentFilter[3];
                 filters[0] = new IntentFilter();
-                filters[0].addAction(NfcAdapter.ACTION_NDEF_DISCOVERED);
+                filters[0].addAction(NfcAdapter.ACTION_TAG_DISCOVERED);
                 filters[0].addCategory(Intent.CATEGORY_DEFAULT);
+                filters[1] = new IntentFilter();
+                filters[1].addAction(NfcAdapter.ACTION_NDEF_DISCOVERED);
+                filters[1].addCategory(Intent.CATEGORY_DEFAULT);
                 try {
-                    filters[0].addDataType("*/*");
+                    filters[1].addDataType("*/*");
                 } catch (MalformedMimeTypeException e) {
                     throw new RuntimeException("Check your mime type.");
                 }
                 // some tags will report as tech, even if they are ndef formated/formatable.
-                filters[1] = new IntentFilter();
-                filters[1].addAction(NfcAdapter.ACTION_TECH_DISCOVERED);
+                filters[2] = new IntentFilter();
+                filters[2].addAction(NfcAdapter.ACTION_TECH_DISCOVERED);
                 String[][] techList = new String[][]{
                         {"android.nfc.tech.Ndef"},
                         {"android.nfc.tech.NdefFormatable"}
-- 
GitLab