We're using the NFC reader to identify cards. However I've found a situation that breaks the NFC reader on Mini ( gen 2) and Flex (gen 1 & gen 2). Customers sometimes come up and tap random NFC/ RFID tags off the devices, or sometimes they have multiple tags in readable distance. e.g. they will come up and tap an Oyster card or they just tap their wallet and have multipl cards inside. It seems that certain chips will break the NFC reader all the time. I suspect some sort of exception that isn't being handled correctly.
To reproduce:
1. Install the Clover NFC project from github (https://github.com/danielwilson1702/android-examples/blob/master/clover-cfp-examples/clover-cfp-examples/src/main/java/com/clover/cfp/examples/NFCExampleActivity.java) This is a fork that just uses Clover's NFC code
2. Scan any Mifare Desfire Chip (ISO 14443-4) with IsoDep.
Expected: Read the card -> print data to screen -> read card again etc
Actual: Scans card once -> NFC reader is now broken and cannot scan any card. The NFC chip within the device goes completely dead, no errors are visible in the logs, but the NFC cannot be woken up again. Sometimes rebooting the app will start the reader again. Sometimes it requires opening another app with NFC capability, sometimes it just requires waiting a few minutes and rebooting the app.
Below is a sample of the card type and technologies used. I can reliably break this every single time with these types of card which are most commonly used in public transport e.g. Oyster card, Leap card etc.
Can you advise on how to fix this from our side or when a fix might be avaialble from Clover?
Thanks!
EDIT: Anecdotally, this is not an issue on Mini Gen 1 or Station Pro. Mini Gen 1 simply will not read these types of NFC tags (but the NFC controller won't break). The Station Pro reads them successfully every time without issue.