I work with
NFC tag which has discovered
ISO,NFCA and NDEF technologies. There are information to read from chip and I try to access
memory but most of
commands I use to communicate with the
TAG responds with
[110, 0] bytes. I could not find what do this mean, some of them responds with
[109, 0] or
[106, -122]. Most often
[110, 0]. Those data is stored beyond the standard
I could not find any information about this kind of response, maybe it is kind of error. Maybe I misunderstood
IsoDep protocol, but it looks pretty simple:
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); IsoDep iso = IsoDep.get(tag); byte mMaster = iso.transceive(CommandFactory.GET_MASTER_APP); byte mApplciation = iso .transceive(CommandFactory.SELECT_APPLICATION);
AFAIK it is ‘stateless’ protocol so there is no need to send commands in specific order ?
Any ideas ?
If Android shows NfcA + IsoDep + Ndef tag technologies for the tag , this means that the tag is an NFC Forum Type 4 tag. Note that the communication with Type 4 tags is not at all stateless. The tag contains a file system structure according to ISO/IEC 7816-4, so you would first have to select the NDEF tag application (the “directory”), then — within that application — select a certain file (e.g. the capability container or the NDEF data file), and then you can perform read/write operations on that file.
What you see in response to your command APDUs (APDUs are application protocol data units defined in ISO/IEC 7816-4 and that’s what you speak with Type 4 tags over ISO-DEP) are response APDUs that consist of a status word. In your case the status words are
- [110, 0] or in unsigned hexadecimal
6E 00: Command class not supported
- [109, 0] or in unsigned hexadecimal
6D 00: Instruction code not supported
- [106, -112] or in unsigned hexadecimal
6A 90: This is a strange (and non-standard) status code. A typical code would be
6A 82([106, -126]), which means file or application not found.