Nous voyons de plus en plus de smartphones/téléphones mobile équipés de la technologie NFC, sans que son usage ne soit encore largement diffusé.
Cette technologie promet un usage simplifié pour l'interaction entre les téléphones mobiles et leur environnement.
Cette session commencera par une description de la norme et des racines de cette technologie : RFID et cartes à puces, et l'implementation de cette norme, APIs et applications sur les différents OS mobiles, avec une attention plus particulière pour Android, moteur actuel de la diffusion de cette technologie.
En deuxième partie nous développerons une application Android pour interagir avec des objets.
1. NFC
Devoxx Paris
27 mars 2013
1
samedi 30 mars 13
2. Bio
Romain MENETRIER
Web puis JVM dev depuis 14 ans
CTO pendant 5 ans de Connecthings, devenu leader
européen du NFC
Consultant NFC et fondateur de Makala, backend pour
applications mobiles (http://makalahq.com)
Organisateur @PAUG & Droidcon Paris
2
samedi 30 mars 13
3. SOMMAIRE
Usage
Norme NFC
Implémentation avec Android
3
samedi 30 mars 13
5. ‣USAGE
NORME
ANDROID
NFC Qu’est-ce que c’est ?
Near Field Communication : communication en champ proche (<10cm)
Sécurité présence
Contexte localisation
Intention toucher
5
samedi 30 mars 13
7. ‣USAGE
NORME
ANDROID
Pourquoi le NFC ?
Geste
Pas de logiciel
Tag = 0,1 à 1€
7
samedi 30 mars 13
8. ‣USAGE
NORME
ANDROID
Mais...
(parce qu’il y a toujours un «mais»)
Le NFC n’est pas adapté pour :
‣ le transfert de fichier
(débit 106Kbps)
‣ la mise en réseau
(portée 10 cm)
8
samedi 30 mars 13
9. ‣USAGE
NORME
ANDROID
Pourquoi le NFC ?
Obtenir une localisation précise < 10 cm
Sécuriser une transaction (indépendant de l’OS)
Déclencher une action
Echanger des données entre différents terminaux
9
samedi 30 mars 13
10. ‣USAGE
NORME
ANDROID
Cas d’usages typiques
Déclenchement d’action
Service d’information
Partage de données
Authentification
Paiement sans contact
10
samedi 30 mars 13
12. ‣USAGE
NORME
ANDROID
Diffusion
Téléphones et tablettes NFC
2011 2013
50 millions 300 millions
Google Play Store
2011 2013
2 app. NFC + de 1000
12
samedi 30 mars 13
14. Origines
USAGE
‣NORME
ANDROID
RFID Radio Frequency IDentification
SmartCard carte à puce
14
samedi 30 mars 13
15. NFC Forum
USAGE
‣NORME
ANDROID
Création en 2004 du NFC Forum
NFC = RFID (13,56Mhz) + SmartCard
15
samedi 30 mars 13
16. Modes de fonctionnement
USAGE
‣NORME
ANDROID
Reader/Writer
Card emulation
P2P
16
samedi 30 mars 13
17. Tag NFC
USAGE
‣NORME
ANDROID
Le NFC Forum prévoit 4 types de tags
(gestion des données dans la mémoire et interface de commande)
Type Taille mémoire Type communication Exemple tag
Type 1 96 à 512 octets ISO 14443 A Topaz (Innovision/Broadcom)
Type 2 48 à 192 octets ISO 14443 A tags Mifare Ultra Light de NXP
Type 3 256 octets à 9 Ko Non ISO 14443 mais semblable tags FeliCa de Sony
Type 4 1 à 8 Ko ISO 14443 A ou B tags DesFire de NXP
17
samedi 30 mars 13
18. Tag NFC
USAGE
‣NORME
ANDROID
Octet 1 Octet 2 Octet 3 Octet 4
block 0 Serial number UID0 UID1 UID2 Internal0
block 1 Serial number UID3 UID4 UID5 UID6
Exemple de
block 2 Interne /blocage Internal1 Internal2 Lock0 Lock1
Capacités du
block 3 CC0 CC1 CC2 CC3
structure mémoire block 4
Contenant
Données Data0 Data1 Data2 Data3
block 5 Données Data4 Data5 Data6 Data7
(tag type 2) block 6 Données Data8 Data9 Data10 Data11
... Données ... ... ... ...
block 15 Données ... ... ... ...
Identifiant du tag
Blocage en écriture
Données
18
samedi 30 mars 13
19. ‣NORME
USAGE
ANDROID
Format d’échange : NDEF
Bytes Explication
Entête NDEF : TNF = 0x01 (type NFC
0xD1
Forum), MB=1, ME=1 (1 seul message)
0x02 Longueur du type (2 octets)
0x0E Longueur des données (14 octets)
«Sp» type SmartPoster
NDEF
NFC Data Exchange Format 0xD1 Entête NDEF : TNF = 0x01 (type NFC Message
Forum), MB=1, ME=1 (1 seul message)
0x01 Longueur du type (1 octets)
NDEF
0x09 Longueur des données (9 octets)
Record
«U» type Url
0x01 Préfixe «http://www.»
«google.fr» contenu URL
19
samedi 30 mars 13
21. USAGE
Lecture de tag
NORME
‣ANDROID
Ajout de la permission NFC dans le manifest.xml
Déclaration dans le manifest des types NDEF gérés
ex: les urls commencant par «http://www.devoxx.com/FR13/»
Lecture du tag
Extraction des informations dans la méthode onResume (extras de l’intent)
21
samedi 30 mars 13
22. USAGE
Ecriture de tag
NORME
‣ANDROID
Préparation des données à écrire
Enregistrement de la détection de tags NFC
Détection du tag NFC
Ecriture du tag
22
samedi 30 mars 13
23. USAGE
Echange P2P
NORME
‣ANDROID
Enregistrement du message à envoyer en cas de
détection de périphérique P2P à proximité
23
samedi 30 mars 13
24. Pour aller plus loin
NORME & DEVELOPPEMENT
NFC Forum http://www.nfc-forum.org/specs
Slides @PAUG http://fr.slideshare.net/romemore/near-field-communication-android
Thomas de Lazzari http://fr.slideshare.net/tdelazzari/architecture-and-development-of-nfc-applications
MOBILE
Android NFC http://developer.android.com/guide/topics/connectivity/nfc/nfc.html
Windows Phone 8 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207060(v=vs.105).aspx
PROJETS
https://code.google.com/p/seek-for-android/
https://code.google.com/p/readnfccc/
APPLICATIONS
https://play.google.com/store/apps/details?id=com.nxp.taginfolite
https://play.google.com/store/apps/details?id=com.connecthings.tagwriter
24
samedi 30 mars 13
25. Merci !
Questions ?
Save the date !
Droidcon Paris
17/18 juin
CFP sur fr.droidcon.com
Contact
romain@makalahq.com
@romemore
+Romain Menetrier
25
samedi 30 mars 13