Frage

I try to make an Android application which communicates with a non-standard ISO15693 (NFC-V) tag.

The tag is non-standard, because it does not have the ISO "Inventory" command implemented. But other comands can be used with NfcV "transceive". Android 4.0.1 does not automatically discover this tag and does not send an intent (with a "Tag" object in its payload) to my application. That's not a problem - I know the tag is there and I can start the application "by hand".

My problem is that I need a "Tag" object to use the "transceive" method for communication. This "Tag" object is normally generated by the operating system. To make my own "Tag" object I would need a "serviceHandle" (integer, probably similar to a file handle) and a "tagService" (is that a link to a device driver or an operating system function?). I could not find a way to get these members! My Questions are:

How can I construct a "Tag" object to use the NfcV "transceive"?

alternatively:

Is there a way to get control over the NfcAdapter to enable ISO15693 (NfcV) and transceive raw commands?

War es hilfreich?

Lösung

To discover NfcV tags, the NFC chip in your Android device sends the ISO15693 Inventory command. When a tag responds to that, the NFC software stack will create a handle for the tag, which the NFC Service in Android uses to create a Tag object. So you cannot create a Tag object without an actual tag known to the NFC software stack.

Support for the Inventory command is mandatory according to ISO15693. So my conclusion is that your tag is not ISO15693 compliant and a such can unfortunately not be supported by the Android NFC API.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top