I'm trying to test out the new Host Card Emulation features in KitKat, but the only KitKat device with NFC that I have at the moment is a 2012 Nexus 7. It does support card emulation through Google Wallet, and I can send and receive data to the two Master Card AIDs that it uses.
However, when I try to implement my own HostApduService
to handle communications with my own custom AID, Android doesn't route any APDUs to my service. I then tried to call CardEmulation.isDefaultServiceForAid
to see if my service is the one that should handle my custom AIDs. When I include the CardEmulation
class in my code, the application crashes.
Looking at logcat
, there's an entry that says "this device does not support card emulation." Is there a reason why the 2012 Nexus 7 does not support this? It has all the necessary hardware and does emulate cards when using Google Wallet.
Card emulation for Google Wallet on the Nexus 7 (2012) is done using an embedded "Secure Element" (essentially a smart card chip). However, the NFC controller on that Nexus 7, unfortunately, does not support HCE under Android 4.4 Kitkat.