From b6842e06a57bb7a3457b1b4c13f395893f037a5d Mon Sep 17 00:00:00 2001 From: Oleg Evseev Date: Tue, 14 Mar 2017 12:34:41 +0300 Subject: 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 Reviewed-by: Oleg Evseev --- .../nfc/src/org/qtproject/qt5/android/nfc/QtNfc.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src') 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"} -- cgit v1.2.3