Question

I am implementing an Android application for NFC devices. I am using a Ndef, NfcV and NdefFormatable tag with two different Android devices: a Samsung Galaxy SII plus and a Samsung Galaxy SII each running android version 4.1.2. the SII plus can see the tag, read it and write it without problem, but the SIII can't see the Ndef technology, it only sees the NfcV technology. Any idea why? The problem occurs on any marketed application as on mine and regardless of the tag having an actual NDEF message or not.

Was it helpful?

Solution

The NfcV Tags aren't official NFC Forum tags. Therefore there is no standardized way how an NDEF message has to be stored on the tag. Also not all NfcV tags work in similar ways. Depending on the specific tag you have to send different commands to the tag if you want to low-level read or write the tag. The memory architecture between different tags differs as well.

In practice NFC communication libraries deal with the problem by having a list of some common NfcV tags along with instructions how to read/write to them. This list differs between different phones and android version.

This incompatibility will not go away in the short term. NfcV may become part of the NFC Forum standard, but that does not help you out now. There are two ways how to deal with this problem:

  1. Don't use NfcV if you need a tag type that can reliable exchange data between all NFC devices. NFC Forum Type1 to Type4 are made for this. NfcV reading/writing capabilites are not even guaranteed to be supported.

  2. If you are tied to this specific NFC tag due to project reasons, you can ignore the built-in NDEF reading code and do it on your own. For this you need the tag datasheet and send raw commands using tag.transceive. It's a bit more work, but it is not that hard.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top