Automating Your Life: A look at NFC


Published on

Talk for Snow*Mobile (now Madison+Mobile) on NFC. this was the full NFC part before it was reduced for the compressed timeframe.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Automating Your Life: A look at NFC

  1. 1. Automating Your Life A look at NFC and BLE
  2. 2. Mitch “Rez” Muenster
  3. 3. Mobile Developer
  4. 4. Grinder
  5. 5. What is a Grinder? Grinders are do it your self cyborgs (people) that are upgrading their bodies with hardware, without waiting for corporate product development cycles or authorities to say it is okay.
  6. 6. Implanting: • Implant itself is rather small. ! • Implanting is done at your own risk ! • Location is everything.
  7. 7. Risks involved as a Ginder If you dod decide to modify your self. be sure you know what you are doing. be safe. Seeking out someone trained in body modification is strongly advised. We are all adults and grown ups, if you do modify your body, you do so at your own risk.
  8. 8. Grinders and mobile Development With an NFC or RFID implant you can use your body to unlock the phone without unlocking the phone. Helps make your phone more secure. Integrate it with apps developed for vehicles to provide hands free access to your car, or motorcycle. Enable the use of the tag scan as the “enter” or “okay” button rather then a touch. And so much more.
  9. 9. NFC What is it and how is it used
  10. 10. What Is NFC NFC (Near Field Communication) ! An evolved from of RFID ! Provides contact-less data transfer and power usage.
  11. 11. Misconceptions
  12. 12. Misconceptions RFID and NFC does not work how Hollywood portrays it. You cannot be tracked with the implant like a GPS. (range is only a few inches) RFID, NFC or implanting is not evil (if it is then most shipping companies, and stores you shop at are too for using this tech) There is no battery or power supply in an RFID tag. Your body parts will not explode dissolve from using a implant. A few implants will not make you a member of the Borg.
  13. 13. Types of NFC NFC FORMATS Popular NFC Tags & Memory Sizes NfcA (ISO 14443-3A) NfcB (ISO 14443-3B) NfcF (JIS 6319-4) NfcV (ISO 15693) IsoDep (ISO 14443-4) Ndef MIFARE Classic • Ultralight – 48 bytes / 46 Useable • Ultralight C* – 128 bytes / 137 Useable • NTAG203 – 144 bytes / 137 Useable • Mifare 1k *– 1,024 bytes / 716 Useable • Desfire 4k* – 4,112 bytes / 4,094 Useable • Topaz 512 – 512 bytes / 454 Useable • NTAG210 – 48 bytes / 46 Useable • NTAG210 – 144 bytes / 137 Useable MIFARE Ultralight * Contains Secure Element
  14. 14. How it works NFC Enabled device sends power to tag Operating frequency of 13.56 MHz Data transfer of 106 kbit/s Operating distance up to 100 mm (depending on various parameters as e.g. field strength and antenna geometry)
  15. 15. What Happens when a tag is detected? Tag is analyzed Categorize the data. Parse it to figure out the mime type or URI payload Start application that is interested in the categorized data.
  16. 16. Tag read life cycle
  17. 17. Demo time!
  18. 18. Enable NFC in your app 1. Request permission to use NFC hardware <uses-permission android:name=“android.permission.NFC” /> 2. Set SDK Level <uses-sdk android:minSDKVersion=“10”/> 3. Set uses feature so app only shows on Google Play if the Device has NFC Hardware Not required but curious for the user who is downloading the app. <uses-feature android:name=“android.hardware.nfc” android:required=“true”/>
  19. 19. Reading a plan text tag 1. Grab the intent 2. Check if action is ACTION_NDEF_DISCOVERED 3. Get EXTRA_NDEF_MESSAGES from the extras bundle 4. Extract the payloads from the NdefRecords
  20. 20. Writing a Tag public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8)
     byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));
     Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");
     byte[] textBytes = payload.getBytes(utfEncoding);
     int utfBit = encodeInUtf8 ? 0 : (1 << 7);
     char status = (char) (utfBit + langBytes.length);
     byte[] data = new byte[1 + langBytes.length + textBytes.length];
     data[0] = (byte) status;
     System.arraycopy(langBytes, 0, data, 1, langBytes.length);
     System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length);
     NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
     NdefRecord.RTD_TEXT, new byte[0], data);
     return record;
  21. 21. Manually creating the NdefRecord byte[] uriField = "".getBytes(Charset.forName("US-ASCII"));
 byte[] payload = new byte[uriField.length + 1];              //add 1 for the URI Prefix
 byte payload[0] = 0x01;                                      //prefixes http://www. to the URI
 System.arraycopy(uriField, 0, payload, 1, uriField.length);  //appends URI to payload
 NdefRecord rtdUriRecord = new NdefRecord(
     NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], payload);
  22. 22. Uses for NFC SMART Advertisements Mobile payments File Sharing Goods and device authentication Bluetooth or Wi-Fi pairing Connection handover Authentication tags Call requests Business cards SMS Call to Action
  23. 23. Out of the box NFC uses Light switch Use an NFC tag as a on of proxy for someone with a Philips Hue light bulb (POE) Power Over Ethernet Use an NFC tag as a proxy for sending a POE packet to your computer NFC enabled rings to provide the same functionality as listed above Bio Hacking, chipping or grinders Imbedding an NFC chip in the body to open doors, turn on lights and all of the previously mentioned uses. v=o4caxH5_Pe4 Using phones as race cars v=c6ATOgEcR1U
  24. 24. More info and demos
  25. 25. Thank You @MobileRez - Twitter Any questions, see me after talk.