RFID on Android - Part 3
Updated: Jul 11, 2019
SDG System’s Android Integration Framework for RFID provides most of the code needed to implement Android RFID integration for your device. It provides code at both the Android and Native layers.
SDG’s Android Extensions for Enterprise RFID
In part 1 of this series we described Android’s implementation of RFID technology via NFC and summarized the set of consumer-targeted features NFC provides. We also pointed out that Android, by default, lacks the full range of RFID capabilities required by typical enterprise RFID applications. In part 2, we described some of those missing capabilities. We then concluded by noting that, due to the lack of standardization, device vendors have been forced fill these functional gaps via proprietary implementations. That is unfortunate for the following reasons:
First, most of the development work required for RFID on Android is common across all RFID devices, and also across different Android and Linux kernel releases. That means there is significant duplication of effort among the device vendors.
Second, RFID application vendors who wish to develop for Android are forced to deal these disparate proprietary implementations.
What is needed is a set of standard RFID extensions to Android. Minimally, this would take the form of standardized API specifications which would be left to the marketplace to implement. In the ideal case, Google would build the needed RFID extensions directly into Android. SDG is committed to encouraging and actively supporting such standardization efforts as they evolve. However, the remainder of this article is focused on how SDG can help in the interim.
SDG’s Android Integration Framework for 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. In the process, we have developed a set of native plugin-modules, Android-based services, and APIs which we refer to collectively as SDG’s Android Integration Framework for RFID (or simply “the RFID Framework”) The RFID Framework provides the following benefits:
Faster time to market at a lower cost - Because it includes most of the needed code, the RFID Framework enables you to implement Android RFID support in a fraction of the time required for an in-house solution--and at a lower cost.
Smooth path to future Android RFID standardization - Should standard Android RFID API extensions emerge, SDG plans to create a path forward to adding support for the standard APIs.
Avoidance of “vendor lock-in” - SDG provides full source code, enabling our licensed partners to support and maintain the toolset themselves, if desired, or extended it to add value.
The diagram below provides a high-level architecture view of the RFID Framework. The accompanying descriptions briefly describe how the components fit together.
SDG Android Integration Framework for RFID
The Android RFID Service implements the new RFID API, which provides applications access to most required capabilities via device-independent interfaces. Accessible operations and controls include: power and antenna settings, duplicate detection, tag population size, custom scan trigger behavior, tag filtering, and tag write operations.
For compatibility with Android NFC applications, the Android RFID service also provides optional integration with Android’s NFC services. When enabled, this option forwards scanned RFID tag data to NFC apps using the NDEF format.
The RFID Framework’s native layer service is implemented at the Linux OS level and is designed to run completely independent of Android. It handles all of the “heavy lifting” of communicating with the reader and providing a device-independent interface to the Android layer service.
The native layer service implements a set of plugin module interfaces which are common across all device types. Once an RFID reader is working with the Linux kernel, getting it working with Android generally requires little more than writing a single plugin module.
In addition to plugin support, native layer services provide support for “keyboard wedge” mode and for enabling hardware-based controls such as buttons or “pistol grip” triggers.
Due to the current state of Android RFID support, device vendors who wish to provide enterprise RFID capabilities in their Android-based devices must extend the default RFID functionality provided by Android. At some point, perhaps Google will add the needed functions to Android. Until then, developing extensions based on common source code is mutually beneficial for device vendors, application developers and, most importantly, customers. SDG’s Android Integration Framework for RFID provides most of the code needed to implement Android RFID integration for your device, and our Android engineering team is available to assist with porting, app developmentand other consulting as needed. Contact us for more information about how we can help you reduce the time, cost, and risk associated with your Android RFID project.