using small antennae. (Produces modulated E or M waves). Developed on the basis of RFID devices. NFC brings 2-way communication and reading of unpowered ‘tags’ Used today for payments, identification, ticketing, social media checkins, hotel room checkins.
form NFC Forum 2006 : Nokia 6131 - First ever NFC phone 2009 : NFC Forum releases peer-to-peer sharing protocols 2010 : First Android NFC phone - Nexus S 2011 : Google I/O - “How to NFC” 2012 : NFC Based payment solutions emerge. Google Wallet. 2013 : Visa, Mastercard start working on NFC solutions. 2014 : Apple Pay, Poynt, IBM 2-factor NFC Authentication
defined NDEF data received. Easiest way to read tags (given they send a proper NDEF message on energizing them) ACTION_TECH_DISCOVERED Fall back from above. If no app has NDEF discovery filter, or the data from the tag is not in NDEF format ACTION_TAG_DISCOVERED Last resort. Gives only info that tag is discovered. No data available. Can be rarely used for meaningful application.
<action android:name="android.nfc.action.NDEF_DISCOVERED"/> <category android:name="android.intent.category.DEFAULT"/> <!-- TAP TO GO TO URL --> <data android:scheme="http" android:host="developer.android.com" android:pathPrefix="/index.html" /> </intent-filter>
Android ICS 4.0 ★ Unidirectional data transfer (short bursts) from one device to another. ★ Needs both devices to have unlocked lockscreens and tapped together. ★ Using SNEP (Simple NDEF Exchange Protocol) ★ Communication initialised only after “Tap to Beam”
additions in 4.1 ★ Larger data (Images/Videos/Audio) transfer possible. ★ For larger data, actual sending takes place over Bluetooth. NFC is used for pairing. ★ Samsung S-Beam uses Wifi-direct instead
by SimplyTapp in 2011 ★ First official implementation via collaboration of SimplyTapp with CyanogenMod ★ Added in Android officially in Kitkat 4.4 ★ Allows apps on an Android phone to emulate a NFC Tag (i.e. software emulation) without usage of Secure Element ★ Support from Visa and MasterCard poured in
called “APDU”. ➔ APDU is 256byte or 64Kb in size - Check isExtendedLengthApduSupported() and getMaxTransceiveLength() ➔ Select AID : [Class | Instruction | Parameter 1 | Parameter 2] ➔ Get/Put AID : [Class | Instruction | Parameter 1 | Length | Data] ➔ Each emulated card is presented as an object of class IsoDep
SELECT_AID → Card App with given AID started Confirm AID ← App starts, channel opened GET_DATA → Parse command payload, Use data as needed ← Send back appropriate data PUT_DATA → Parse command payload Receive OK status ← Modify data, send ACK/NAK back
allows 2-way sustained communication between Android devices. Key to bi-directional data transfer is iteration over multiple GET_DATA, PUT_DATA calls, and sending information in packets. Communication will be half-duplex. With a practical speed limit of ~10Kbps
industrial application ❏ libnfc lacks uniformity across vendors ❏ NXP chips not having extended APDU and HCE support. ❏ Lack of support for all tag data formats (NDEF, APDU) in standalone readers