Well, there are good news: Google announced an update to Android 2.3 that adds new NFC capabilities for developers. This update is a small feature release but finally adds read and write APIs for the near field communications chip. Other updates include new APIs for Bluetooth, graphics, media framework, and speech recognition. The new version is available as a downloadable component for the Android SDK.
Now, the plataform provides a new set of APIs supporting a wider range of standard tags, including:

NFC-A (ISO 14443-3A)

NFC-B (ISO 14443-3B)

NFC-F (JIS 6319-4)

NFC-V (ISO 15693)

ISO-DEP (ISO 14443-4)

Mifare Classic

Mifare Ultralight

NFC Forum NDEF tags

This release also provides a limited peer-to-peer communication protocol and API. As they say “advanced tag dispatching now gives applications more control over how and when they are launched, when an NFC tag is discovered. Previously, the platform used a single-step intent dispatch to notify interested applications that a tag was discovered. The platform now uses a four-step process that enables the foreground application to take control of a tag event before it is passed to any other applications (android.nfc.NfcAdapter.enableForegroundDispatch()). The new dispatch process also lets apps listen for specific tag content and tag technologies, based on two new intent actions — android.nfc.action.NDEF_DISCOVERED and android.nfc.action.TECH_DISCOVERED”.
We are going to test this new functionality, will be sharing our views about it and posting some new examples.

Yes, in the new package android.nfc.tech they include the method “transceive(byte [])” in the NfcA class to send raw NFC-A (iso 14443-a) commands to the tag and receive the response. There are also specific classes for MifareClassic and MifareUltralight where you can send either raw commands via “transceive” or use classic commands (readBlock, writeBlock, increment, decrement) already implemented in the class.

Sorry, I confused it with std APDUs commands. Well, in this update I don’t see a specific interface like ExtendedLength in the javacardx.apdu package. Maybe you should take a look at the NXP hal libraries because almost 99% of the NFC funcionality was already there since 2.3 release and now Google is updating the app and sdk layers for developers.

I see there is not DESFire specific support, but considering thay we can use the transceive method to send raw commands does it mean we could read a DESFire card if we now how to use the specification??

I did some experimentation with the Nexus S with the “transceive(byte [])” command and there seems to be a limitation that prevents you from using extended APDUs.
In my tests the response from the smart card is longer than 256 bytes but the transceive method returns null.
I haven’t debugged it yet but it looks like this is the problem…

Hi
I’m french. We’ve developed an application for blind people. We’re looking for a command or source code to protect (but not permanently) our data in our tags. We would it to work like a p.i.n. : our application could read the data because of the pin ; we also could change the data in our tags because we know the pin.
I would be great if you can help us.
Bests regards.

Hi, can someone help me in reading Payment cards (like Chase Blink card – paywave, paypass cards). I looking at reading the card information like cc #, expiration etc. I did enuf research in getting APDU commands, but all in vain :(. Can somebody shed some lights? Please…. Thanks