SlideShare a Scribd company logo
1 of 23
NFC Programming in Android Ishan Fernando @ifdo [email_address] Myti s.r.l. www.myti.it
NFC (Near Field Communication) ,[object Object]
NFC (Near Field Communication) ,[object Object],[object Object],[object Object]
NFC (Near Field Communication) ,[object Object]
Storia
NDEF (NFC Data Exchange Format) ,[object Object]
NDEF (NFC Data Exchange Format) ,[object Object],[object Object],[object Object]
NDEF (NFC Data Exchange Format) ,[object Object],[object Object],[object Object],[object Object],[object Object]
NDEF (NFC Data Exchange Format) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NFC e NDEF summary ,[object Object],NFC  è una tecnologia wireless a corto raggio che consente di creare una comunicazione bidirezionale
NFC Technology summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NFC e Android
NFC e Android - dispatch system ,[object Object],[object Object]
Intent e Foreground Dispatch Systems ,[object Object],[object Object],[object Object],[object Object]
Discover NDEF Tag - Permessi <uses-permission          android:name = &quot;android.permission.NFC&quot;   /> <uses-sdk            android:minSdkVersion = &quot;10&quot; /> <uses-feature            android:name = &quot;android.hardware.nfc&quot;           android:required = &quot;true&quot;   />
Discover NDEF Tag - Intent filter <activity>    ...    <intent-filter>      <action            android:name = &quot;android.nfc.action.NDEF_DISCOVERED&quot; />      <category            android:name = &quot;android.intent.category.DEFAULT&quot; />      <data            android:mimeType = &quot;text/plain&quot;   />    </intent-filter>    ... </activity>
NDEF Tag - Reading public   class  MyNFCActivity  extends  Activity  {      @ Override     public   void  onNewIntent ( Intent intent )   {        Parcelable []  raw  =  intent . getParcelableArrayExtra (                  NfcAdapter . EXTRA_NDEF_MESSAGES ) ;      NdefMessage message  =   ( NdefMessage )  raw [ 0 ] ;        NdefRecord record  =  message . getRecords ()[ 0 ] ;        byte []  payload  =  record . getPayload () ;        ...    } }
NDEF Tag - Writing public   class  MyNFCActivity  extends  Activity  {    @ Override    public   void  onNewIntent ( Intent intent )   {      Tag t  =  intent . getParcelableExtra ( NfcAdapter . EXTRA_TAG ) ;      Ndef ndef  =  Ndef . get (  t  ) ;      ndef . connect () ;      final   byte []  data  =  … ;      NdefRecord record  =   new  NdefRecord (              NdefRecord . TNF_MIME_MEDIA ,              &quot;text/plain&quot; . getBytes (),              new   byte [ 0 ],              data ) ;      NdefRecord []  records =  new  NdefRecord [] { record };      NdefMessage message  =   new  NdefMessage (  records  ) ;          ndef . writeNdefMessage ( message ) ;    } }
NFC e Android summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Safeatwork ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Safeatwork ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Safeatwork ,[object Object]
Grazie ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Analisi dei pacchetti in ambito Network Forensics
Analisi dei pacchetti in ambito Network ForensicsAnalisi dei pacchetti in ambito Network Forensics
Analisi dei pacchetti in ambito Network ForensicsEmanuele Gargiulo
 
La complessità del malware: analisi strutturale ed ambienti di sviluppo
La complessità del malware: analisi strutturale ed ambienti di sviluppoLa complessità del malware: analisi strutturale ed ambienti di sviluppo
La complessità del malware: analisi strutturale ed ambienti di sviluppoMarco Ferrigno
 
GNUPg e la posta elettronica certificata
GNUPg e la posta elettronica certificataGNUPg e la posta elettronica certificata
GNUPg e la posta elettronica certificataNoDelay Software
 
Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Marco Ferrigno
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceMarco Ferrigno
 
Cyber Forensics - Acquisizione e analisi dei dati
Cyber Forensics - Acquisizione e analisi dei datiCyber Forensics - Acquisizione e analisi dei dati
Cyber Forensics - Acquisizione e analisi dei datiMarco Ferrigno
 

What's hot (7)

Analisi dei pacchetti in ambito Network Forensics
Analisi dei pacchetti in ambito Network ForensicsAnalisi dei pacchetti in ambito Network Forensics
Analisi dei pacchetti in ambito Network Forensics
 
La complessità del malware: analisi strutturale ed ambienti di sviluppo
La complessità del malware: analisi strutturale ed ambienti di sviluppoLa complessità del malware: analisi strutturale ed ambienti di sviluppo
La complessità del malware: analisi strutturale ed ambienti di sviluppo
 
GNUPg e la posta elettronica certificata
GNUPg e la posta elettronica certificataGNUPg e la posta elettronica certificata
GNUPg e la posta elettronica certificata
 
Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open source
 
Cyber Forensics - Acquisizione e analisi dei dati
Cyber Forensics - Acquisizione e analisi dei datiCyber Forensics - Acquisizione e analisi dei dati
Cyber Forensics - Acquisizione e analisi dei dati
 
Hacking reti wireless
Hacking reti wirelessHacking reti wireless
Hacking reti wireless
 

Similar to GTUG NFC Presentation

Android - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationAndroid - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationWhymca
 
Simple Network Management Protocol
Simple Network Management ProtocolSimple Network Management Protocol
Simple Network Management Protocolmichelemanzotti
 
NFC: Tecnologia e Sicurezza
NFC: Tecnologia e SicurezzaNFC: Tecnologia e Sicurezza
NFC: Tecnologia e SicurezzaAndrea Draghetti
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
NFC (Near Field Communication - Comunicazione di prossimità)
NFC (Near Field Communication - Comunicazione di prossimità)NFC (Near Field Communication - Comunicazione di prossimità)
NFC (Near Field Communication - Comunicazione di prossimità)Luca Santoro
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
Smart Plant P&amp;Id Mobile
Smart Plant P&amp;Id MobileSmart Plant P&amp;Id Mobile
Smart Plant P&amp;Id Mobilegmanca
 
NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)Claudio Rubbiani
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Filippo Matteo Riggio
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Networkcarmine ricca
 
Data Hiding
Data HidingData Hiding
Data HidingNaLUG
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Analisi delle dipendenze architetturali dei servizi di autenticazione SPID
Analisi delle dipendenze architetturali dei servizi di autenticazione SPIDAnalisi delle dipendenze architetturali dei servizi di autenticazione SPID
Analisi delle dipendenze architetturali dei servizi di autenticazione SPIDLeonardoSimonini
 

Similar to GTUG NFC Presentation (20)

Android - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationAndroid - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentation
 
Simple Network Management Protocol
Simple Network Management ProtocolSimple Network Management Protocol
Simple Network Management Protocol
 
NFC: Tecnologia e Sicurezza
NFC: Tecnologia e SicurezzaNFC: Tecnologia e Sicurezza
NFC: Tecnologia e Sicurezza
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
NFC (Near Field Communication - Comunicazione di prossimità)
NFC (Near Field Communication - Comunicazione di prossimità)NFC (Near Field Communication - Comunicazione di prossimità)
NFC (Near Field Communication - Comunicazione di prossimità)
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
NFC, Bluetooth e comunicazione tra app
NFC, Bluetooth e comunicazione tra appNFC, Bluetooth e comunicazione tra app
NFC, Bluetooth e comunicazione tra app
 
Smart Plant P&amp;Id Mobile
Smart Plant P&amp;Id MobileSmart Plant P&amp;Id Mobile
Smart Plant P&amp;Id Mobile
 
NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)NEXiDA Smart User Interface flyer (italian)
NEXiDA Smart User Interface flyer (italian)
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.
 
Vpn Virtual Private Network
Vpn Virtual Private NetworkVpn Virtual Private Network
Vpn Virtual Private Network
 
Data Hiding
Data HidingData Hiding
Data Hiding
 
Openmoko
OpenmokoOpenmoko
Openmoko
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
 
NetDisco
NetDiscoNetDisco
NetDisco
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Analisi delle dipendenze architetturali dei servizi di autenticazione SPID
Analisi delle dipendenze architetturali dei servizi di autenticazione SPIDAnalisi delle dipendenze architetturali dei servizi di autenticazione SPID
Analisi delle dipendenze architetturali dei servizi di autenticazione SPID
 

More from Myti S.r.l.

Myti CloudRM - Cloud Remote Monitor 2015
Myti CloudRM - Cloud Remote Monitor 2015Myti CloudRM - Cloud Remote Monitor 2015
Myti CloudRM - Cloud Remote Monitor 2015Myti S.r.l.
 
Myti Su Brescia Oggi 6 febbraio 2014
Myti Su Brescia Oggi 6 febbraio 2014Myti Su Brescia Oggi 6 febbraio 2014
Myti Su Brescia Oggi 6 febbraio 2014Myti S.r.l.
 
Presentazione skill itinere
Presentazione skill itinerePresentazione skill itinere
Presentazione skill itinereMyti S.r.l.
 
DINAL Ingrosso Tablet APP
DINAL Ingrosso Tablet APPDINAL Ingrosso Tablet APP
DINAL Ingrosso Tablet APPMyti S.r.l.
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project BrochureMyti S.r.l.
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013Myti S.r.l.
 
Bleen - Tutto comincia da una ricerca
Bleen - Tutto comincia da una ricercaBleen - Tutto comincia da una ricerca
Bleen - Tutto comincia da una ricercaMyti S.r.l.
 
Il documentale più usato al mondo
Il documentale più usato al mondoIl documentale più usato al mondo
Il documentale più usato al mondoMyti S.r.l.
 
Bleen- Integrazione sistemi
Bleen- Integrazione sistemiBleen- Integrazione sistemi
Bleen- Integrazione sistemiMyti S.r.l.
 
Quale è il documentale più usato al mondo?
Quale è il documentale più usato al mondo?Quale è il documentale più usato al mondo?
Quale è il documentale più usato al mondo?Myti S.r.l.
 
Bleen architecture
Bleen architectureBleen architecture
Bleen architectureMyti S.r.l.
 
Brochure Simsa Eng
Brochure Simsa EngBrochure Simsa Eng
Brochure Simsa EngMyti S.r.l.
 

More from Myti S.r.l. (15)

Myti CloudRM - Cloud Remote Monitor 2015
Myti CloudRM - Cloud Remote Monitor 2015Myti CloudRM - Cloud Remote Monitor 2015
Myti CloudRM - Cloud Remote Monitor 2015
 
Myti Su Brescia Oggi 6 febbraio 2014
Myti Su Brescia Oggi 6 febbraio 2014Myti Su Brescia Oggi 6 febbraio 2014
Myti Su Brescia Oggi 6 febbraio 2014
 
Bleen manuale
Bleen manualeBleen manuale
Bleen manuale
 
Presentazione skill itinere
Presentazione skill itinerePresentazione skill itinere
Presentazione skill itinere
 
Bleen CH Leali
Bleen   CH LealiBleen   CH Leali
Bleen CH Leali
 
DINAL Ingrosso Tablet APP
DINAL Ingrosso Tablet APPDINAL Ingrosso Tablet APP
DINAL Ingrosso Tablet APP
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project Brochure
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
 
Bleen - Tutto comincia da una ricerca
Bleen - Tutto comincia da una ricercaBleen - Tutto comincia da una ricerca
Bleen - Tutto comincia da una ricerca
 
Il documentale più usato al mondo
Il documentale più usato al mondoIl documentale più usato al mondo
Il documentale più usato al mondo
 
Bleen- Integrazione sistemi
Bleen- Integrazione sistemiBleen- Integrazione sistemi
Bleen- Integrazione sistemi
 
Quale è il documentale più usato al mondo?
Quale è il documentale più usato al mondo?Quale è il documentale più usato al mondo?
Quale è il documentale più usato al mondo?
 
Bleen architecture
Bleen architectureBleen architecture
Bleen architecture
 
Brochure Simsa Eng
Brochure Simsa EngBrochure Simsa Eng
Brochure Simsa Eng
 
Bleen Short
Bleen ShortBleen Short
Bleen Short
 

GTUG NFC Presentation

  • 1. NFC Programming in Android Ishan Fernando @ifdo [email_address] Myti s.r.l. www.myti.it
  • 2.
  • 3.
  • 4.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 13.
  • 14.
  • 15. Discover NDEF Tag - Permessi <uses-permission          android:name = &quot;android.permission.NFC&quot; /> <uses-sdk            android:minSdkVersion = &quot;10&quot; /> <uses-feature            android:name = &quot;android.hardware.nfc&quot;          android:required = &quot;true&quot;   />
  • 16. Discover NDEF Tag - Intent filter <activity>   ...   <intent-filter>      <action            android:name = &quot;android.nfc.action.NDEF_DISCOVERED&quot; />      <category            android:name = &quot;android.intent.category.DEFAULT&quot; />      <data            android:mimeType = &quot;text/plain&quot; />   </intent-filter>   ... </activity>
  • 17. NDEF Tag - Reading public class MyNFCActivity extends Activity {     @ Override    public void onNewIntent ( Intent intent ) {        Parcelable [] raw = intent . getParcelableArrayExtra (                  NfcAdapter . EXTRA_NDEF_MESSAGES ) ;      NdefMessage message = ( NdefMessage ) raw [ 0 ] ;        NdefRecord record = message . getRecords ()[ 0 ] ;        byte [] payload = record . getPayload () ;       ...   } }
  • 18. NDEF Tag - Writing public class MyNFCActivity extends Activity {   @ Override   public void onNewIntent ( Intent intent ) {      Tag t  =  intent . getParcelableExtra ( NfcAdapter . EXTRA_TAG ) ;      Ndef ndef = Ndef . get (  t  ) ;      ndef . connect () ;      final byte [] data = … ;      NdefRecord record = new NdefRecord (              NdefRecord . TNF_MIME_MEDIA ,              &quot;text/plain&quot; . getBytes (),              new byte [ 0 ],              data ) ;     NdefRecord []  records =  new  NdefRecord [] { record };      NdefMessage message = new NdefMessage (  records  ) ;          ndef . writeNdefMessage ( message ) ;   } }
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

Editor's Notes

  1. corto raggio per i pagamenti e la sicurezza
  2. lento rispetto a bluetooth
  3. differenza principale tra NFC e RFID è NFC permette di fare una comunicazione bidirezionale.
  4. tag nfc è diverso da rfid
  5. The intent dispatch system is to launch a program from scratch. For instance, you turn your phone on and hover it over a tag. The phone launches an intent, identifying it as a Mifare card. Your app has an intent dispatch for Mifare cards, so it is one of the apps that can be selected. If your intent dispatch is specific enough(compared to other apps), it will be the only app to select, and will run at that point. Foreground dispatch is used by your app while it is running. This way, your app won&apos;t be turned off if another app has a similar intent dispatch setup. Now with your app running, it can discover a tag and handle the intent over other apps on the phone, and the phone will not prompt you to select from a bunch of apps that have a similar intent dispatch.
  6. API level 9 only supports limited tag dispatch via  ACTION_TAG_DISCOVERED , and only gives access to NDEF messages via the  EXTRA_NDEF_MESSAGES  extra. No other tag properties or I/O operations are accessible. API level 10 includes comprehensive reader/writer support as well as foreground NDEF pushing, and API level 14 provides an easier way to push NDEF messages to other devices with Android Beam and extra convenience methods to create NDEF records.
  7. 3-bit TNF (Type Name Format) field: Indicates how to interpret the type field EXTRA_TAG   (required): A   Tag   object representing the scanned tag. EXTRA_NDEF_MESSAGES   (optional): An array of NDEF messages parsed from the tag. This extra is mandatory on   intents.