I have an app which reads and writes NFC tags. I tested my app on a Galaxy Note 3 and it works fine. But when I test it on a Note 5 and a Galaxy S6, a message pops up that says, “NFC tag type not supported”.
Is that the fault of my app or are my tags not support on those devices?
My tag type is ISO 14443A standard.
You are using MIFARE Classic tags. While these tags are partially based on ISO/IEC 14443-3A (or actually the other way round), they use a proprietary encryption algorithm and a proprietrary framing. Since NXP (the owner of MIFARE Classic technology) does not seem to license MIFARE Classic reader technology to other chip manufacturers, access to the memory of MIFARE Classic tags is only available on NFC devices with NXP chipset.
This usually only means that you can’t access the data on MIFARE Classic tags through devices without an NXP NFC chipset. Usually you can still access the ISO/IEC 14443-3A anti-collision identifier (UID) through the Android API. Unfortunately, Samsung decided to completely block MIFARE Classic on their devices by displaying the message “NFC tag type not supported” instead. As a result, you can’t even detect these tags from apps on the affected Samsung devices. See Hide “NFC Tag type not supported” error on Samsung Galaxy devices for possible ways to work around that limitation.
With regard to your specific devices, the Samsung Note 3 contains an NXP PN544 NFC controller and, consequently, supports MIFARE Classic. The Samsung Galaxy S6 contains a Samsung S3FWRN5P NFC controller (the Note 5 probably also contains an NFC controller from Samsung) and, consequently, they don’t support (and actually completely block) MIFARE Classic.
It seems your tag is a Mifare Classic : https://en.wikipedia.org/wiki/MIFARE#MIFARE_Classic
It uses an NXP proprietary security protocol (Crypto-1) for
authentication and ciphering. This means only devices with an NXP NFC
controller chip can read or write these tags.
I confirm that my Samsung S7 with android 7.0 shows the “uncompatible” message but it can properly read mifare tags (just the ID), but only by using NXP specific app.
S7 also supports HCE to emulate cards, but I have yet to find an app which can replicate just the id of a card.