Using NFC data tags in ODK Collect

There was some commentary a couple of years back about creating a widget to access data off NFC data tags to populate fields in an ODK Collect survey. As this technology becomes more and more prevalent, and hence more affordable, I am sure that surveys that want to record both static data (data that does not change often at sites and hence ideal for an NFC tag) and dynamic data will start using the devices more and more.

The implementation would appear to be pretty similar to bar coded data for a single valued NFC tag. However, what I cannot figure out is how one would implement it if the tag contained multiple values. Anybody got any thoughts on this?

Mark, I'm moving this thread to a feature request. Can you provide more detail about your needs and how you'd use it?

What is the general goal of the feature?

What are some example use cases for this feature?

What can you contribute to making this feature a reality?

@Neil_Penman knows about it! we use it with smap

General goal of the feature would be to use NFC tags at inspection/data collection sites to supply certain pieces of data, so that they do not need to be typed in.

An example use case would be a remote site that is visited from time to time. Certain data at that site is static and would involve a great deal of time from the ODK Collect user to type, so the NFC tag at the site would be accessed and a number of fields worth of data would be collected from the tag or tags.

My understanding of the problem is that it is similar in principle to acquiring data from a barcode, but it differs in one key aspect - it potentially has more than one field that would need to be captured from the same tag.

1 Like

@Neil_Penman Is the NFC implementation in Smap something that can be easily integrated with Collect?

Hi Yaw,


I use an appearance of "read_nfc" applied to a bar code type. This starts
up an NFCWidget which is a modified version of your barcode widget. I have
also added an NFC Activity to read the NFC. This just reads an NFC tag
using the Android NFC Adapter



Cool! And does it support storing data into multiple fields or is it just like barcode's single field?

Just like barcode. This was a while ago so my memory of NFC is a bit hazy,
however it just reads I think the "tag" value. Currently it doesn't
support reading any NFC data. That would a little more thought in

Is this topics always a feature request ?
I will be interested using it too, as simple as barcode, one field - one tag value, same use case.
Thanks a lot

@olivierfavre It's a feature request until someone has the resources to build it or contribute it. Perhaps you know a developer who would be willing to contribute the feature to the community?