Android 2.3.4 Gingerbread is the latest officially released platform that was rolled out a couple of weeks ago to the Google Nexus S and Nexus One. The biggest feature upgrade is that video chat is now available on Google Talk for all those whose devices with a front-facing camera. This new update is a maintenance release that adds several bug fixes and patches to the Android 2.3 platform and it does not increment the API level, it uses the same API level 10 as 2.3.3
Since the source code for 2.3.4 has already been pushed to the Android Open Source Project (AOSP), we’ve been analyzing it and we found the some changes in the NFC Java Classes, mainly in card emulation features:
New NFC-EE (Nfc Execution Environment) API’s as shared library
There are two new classes, NfcAdapterExtras and NfcExecutionEnvironment, implemented as a shared library in frameworks/base/nfc-extras. The NfcAdapterExtras class provides additional methods on an NfcAdapter for Card Emulation and management of the Nfc Execution Environment (EE). But the access to this functionality is limited because it depends on the NfcAdapter.getNfcAdapterExtrasInterface() method that was hidden with the “@hide” tag.
New ApduList class in the android.nfc package to create an array of APDU commands and send them to the SE. This class is also hidden with the “@hide” tag.
No more NfcSecureElement class. This class was used in 2.3.3 version as the primary API for managing all aspects of the Secure Element (SE) like open/close the SE, get the SE unique identifier, and so on, but was deleted from this version, probably as result of this new “NFC-EE” paradigm. From now on, you need to define a “route” (such as a UICC via SWP or the embedded secure chip) to the SE instead of open it directly.
So, what Google NFC software engineers said this past week at the company’s I/O developer conference about card emulation is true: there are no public APIs to card emulation. But definitely they are working on card emulation functionality and it’s already part of the new Android 2.3.4