RFID on Android - Part 1
In this first part of a new series on RFID on Android, we will explore the use of NFC in Android and its relationship to RFID.
This article is the first in a series in which we will discuss RFID support on enterprise Android devices. The series will be divided into three parts:
Part 1: Android’s Use of RFID via Near Field Communication (NFC)- By default, Android provides access to RFID technology solely through its implementation of Near Field Communication (NFC). This article summarizes the relationship between NFC and RFID and provides a brief description of Android’s NFC implementation.
Part 2: Android Capabilities Needed for Enterprise RFID- Although NFC expands the use of RFID to enable a broad range of consumer-based applications, it does not support all the capabilities required by most enterprise RFID applications. This article will focus on the capabilities that are missing.
Part 3: SDG’s Android Extensions for Enterprise RFID- Over the last two years, SDG has helped our partners implement Android support for RFID readers across the whole spectrum of LF, HF and UHF interfaces. This article will describe SDG’s Integration Framework for RFID, which implements a common API for developing Android RFID applications, a plugin module interface for supporting new RFID readers, and a set of supporting services.
Part 1: Android’s use of RFID via NFC
As mentioned above, Android, by default, supports RFID solely through its implementation of NFC. In the next article, we’ll discuss what’s required, beyond NFC, to support traditional enterprise RFID. First, however, we need to discuss what NFC provides, and also try to clear up a common source of confusion.
The relationship between NFC and RFID
Because RFID is integral to the implementation of NFC, it is important to understand how they are related, and how they differ. Unfortunately, even in some educational articles regarding NFC, it is not uncommon to find statements that don’t get the relationship quite right. For example, the first page of Google search results for “rfid vs. nfc” turned up the following not-quite-correct generalizations in two otherwise helpful articles:
“NFC technology is a newer, more finely honed version of RFID.”
“NFC is a branch of High-Frequency (HF) RFID.”
The problem with both statements is that they describe NFC as though it were merely a subset (or specific type) of RFID. Here is a more accurate description:
“NFC is a standard set of communication services built around a subset of RFID, which facilitates extension of RFID to new applications beyond its traditional enterprise use cases.”
In other words, NFC is both less than RFID and more than RFID:
NFC uses only a subset of RFID technologies. RFID encompasses a large number of protocols spanning multiple sets of frequency ranges--low frequency (LF), high frequency (HF), and ultra high frequency (UHF). NFC uses only HF readers and implements only a subset of HF protocols.
NFC provides access to only a subset of RFID capabilities. For example, NFC does not support simultaneous scanning of multiple tags, and often supports only a subset of available HF tag types (e.g. ISO/IEC 14443).
NFC provides a set of communication services that augments RFID and enables its use in a large range of new applications. Some examples (described later): a standardized yet versatile format, NFC Data Exchange Format (NDEF), for various types of application data; point-to-point mode; host-based smart card emulation.
Android’s NFC Implementation
Android’s NFC provides APIs and services which implement the following:
Operations for reading and writing NFC-supported tags
Classes for parsing and interfacing with different types of tag data:
NFC Data Exchange Format (NDEF) - Used to encapsulate MIME-typed data, URIs, or raw application-specific data.
Tag Technology - Used to access protocol-specific tag data (header fields, etc.); i.e., access to the technology within the tag.
Point-to-point mode which enables device-to-device, no-setup-required connections (Android Beam).
Host-based smart card emulation, which allows an Android device to simulate a smart card (e.g. for use in making electronic payments).
Asynchronous notification of NFC events (like tag reads) through Android’s Intent mechanism--including the ability to start up the appropriate application, if necessary.
Support for all devices required by the NFC specification plus several optional device types. (See the Advanced NFC page of the Android API Guide for a full list of supported technologies.)
If you would like more information, the NFC section of the Android API Guide provides an excellent overview along with a detailed specification of the APIs.
Overall, Android’s NFC creates a very useful set of RFID-based features for the consumer applications to which it has been targeted. However, as we stated earlier, it does not provide all that is needed for traditional enterprise RFID applications. What is missing will be the subject of the next article.