NFC(Near Field Communication)

What is NFC?

Near field communication (NFC) is a set of standards for smartphones and similar devices to establish radio communication with each other by touching them together or bringing them into close proximity, usually no more than a few centimetres. Present and anticipated applications include contactless transactions, data exchange, and simplified setup of more complex communications such as Wi-Fi.
i.e NFC is a set of short-range wireless technologies, typically requiring a distance of 4 cm or less.

Germany, Austria, Latvia and Italy have trialled NFC ticketing systems for public transport. China is using it all over the country in public bus transport and India is implementing NFC based transactions in box offices for ticketing purposes.

Uses of NFC include:

  • Matching encrypted security code and transporting access key;
  • Due to short transmission range, NFC-based transactions are possibly secure;
  • Instant payments and coupon delivery using your handset, as we do with your credit card or debit card;
  • Marketing and exchange of information such as schedules, maps, business card and coupon delivery using NFC Marketing tags;
  • Pay for items just by waving your phone over the NFC capable devices
  • Transferring images, posters for displaying and printing
  • Social media e.g Like on Facebook, Follow on Twitter via NFC smart stickers in retail stores
  • NFC devices can be used in contactless payment systems, similar to those currently used in credit cards and electronic ticket smartcards, and allow mobile payment to replace or supplement these systems.

    For example, Google Wallet allows consumers to store credit card and store loyalty card information in a virtual wallet and then use an NFC-enabled device at terminals.

NFC on Android

There are two popular NFC stacks i.e. Google NFC Stack and Open NFC Stack. Where, Google NFC stack is a part of Android platform(i.e Android 2.3.4), on the other hand Android platform does not integrate the Open NFC stack. So the developers mainly use to prefer ‘Google NFC Stack’ for application developement.

Open NFC stack has several advantages like not limited to one particular NFC hardware, portable to many different environments (not only Android), many additional features compared to the current stack and because the Open NFC is not part of the standard Android environment, it requires some work (but it is actually quite easy) to use this stack in an Android platform. The Open NFC documentation describes this process.

The Open NFC stack is parallel activity and is optional replacement to the current stack. Due to its description it overcomes some limits of the Google NFC stack implementation and makes new HW adaptions (i.e. support for new tag types) easier.

Why developers prefer Google NFC Stack than the Open NFC Stack?

Because this stack is intended to by used by device manufacturers, not mobile developers, because the standard Android kernel does not support modules loading, the Open NFC stack cannot be simply installed as another application, it

requires a kernel change. But once the kernel is replaced, it is quite easy to deploy and use the Open NFC stack. An application developer should probably stick to the OS features, even if more limited, since they assure the portability of the code over any NFC-enabled phone. But if you are trying to use “more” features than what comes with Android, Open NFC is a good candidate.

Conclusion : Until some phone manufacturer will integrate the stack into device, it does not make too much sense to be interested in Open NFC stack. An app developer cannot make use of Open NFC unless it is on hardware.

You can also follow “NFC on Android” talk on Google I/O:

As developers continue innovating, we may discover more ways to use NFC on Android. NFC is going to be built into more and more devices. but it might be a few years before that happens. 🙂