Reputation: 15297
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 NDEF
content.
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 ?
Upvotes: 1
Views: 1280
Reputation: 40851
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
6E 00
: Command class not supported6D 00
: Instruction code not supported6A 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.Upvotes: 2