Un téléphone Android NFC peut-il servir de balise NFC?

101

D'après ce que j'ai compris jusqu'à présent, un téléphone NFC agira comme un lecteur NFC qui lira les données d'une balise NFC. Maintenant ma question est, pouvons-nous changer cela? Pouvons-nous faire en sorte qu'un téléphone NFC Android se comporte comme l'étiquette à partir de laquelle un lecteur NFC obtiendra des données?

Merci pour votre aide.

Joshua Partogi
la source

Réponses:

32

Pour le moment, je répondrais «non» ou «avec difficulté», mais cela pourrait changer avec le temps au fur et à mesure que l'API NFC Android évolue.

Il existe trois modes d'interaction NFC:

  1. Reader-Writer: le téléphone lit les balises et y écrit. Il ne s'agit pas d'émuler une carte au lieu d'un lecteur / graveur NFC. Par conséquent, vous ne pouvez pas émuler une balise dans ce mode.

  2. Peer-to-peer: le téléphone peut lire et renvoyer les messages ndef. Si le lecteur de balises prend en charge le mode peer-to-peer, le téléphone pourrait éventuellement servir de balise. Cependant, je ne sais pas si Android utilise son propre protocole en plus du protocole LLCP (protocole de liaison logique NFC), ce qui empêcherait alors la plupart des lecteurs de traiter le téléphone comme une balise nfc.

  3. Mode d'émulation de carte: le téléphone utilise un élément sécurisé pour émuler une carte à puce ou un autre appareil sans contact. Je ne sais pas si cela est encore lancé, mais pourrait être prometteur. Cependant, l'utilisation de l'élément sécurisé peut nécessiter que le fournisseur de matériel ou une autre personne vérifie votre application / lui donne des autorisations pour accéder à l'élément sécurisé. Ce n'est pas aussi simple que de créer une application Android NFC classique.

Plus de détails ici: http://www.mail-archive.com/[email protected]/msg152222.html

Une vraie question serait: pourquoi essayez-vous d'émuler une simple vieille balise nfc? Y a-t-il une application à laquelle je ne pense pas? Habituellement, vous voudrez émuler quelque chose comme une carte de transport, une clé d'accès ou une carte de crédit qui nécessiterait un élément sécurisé (je pense, mais pas sûr).

Faire quelque chose
la source
D'accord. Google vient d'annoncer google.com/wallet aujourd'hui. Dans ce scénario, le téléphone ne ferait-il pas office de balise?
Joshua Partogi
1
Comme @ erich-douglass l'a souligné plus haut: pas nécessairement. si le terminal du lecteur est peer-to-peer, il n'aurait pas besoin d'agir comme une balise.
denbec le
comme ci-dessus, vous pouvez écrire sur un lecteur à partir du téléphone en utilisant le push NDEF et le support peer to peer dans Android 2.3+, mais vous devez vous assurer que le code du lecteur est peer to peer. (doit être un téléphone doté d'une puce NFC, par exemple Galaxy Nexus, Nexus S.)
gamozzii
Le problème est qu'actuellement, la plupart des lecteurs de cartes NFC utilisent des balises passives. Il est beaucoup plus complexe de prendre en charge les échanges LLCP actifs et, bien sûr, de toujours prendre en charge la lecture passive des cartes. C'est possible, mais je n'ai pas encore entendu parler d'une option de paiement mise en œuvre avec LLCP ...
AerandiR
11
C'est obsolète. Android 4.4 a une émulation de carte basée sur l'hôte, ce qui permet précisément ceci: developer.android.com/guide/topics/connectivity/nfc/hce.html
Trevor Johns
17

Pouvons-nous créer un NFC Android comme balise à partir de laquelle un lecteur NFC obtiendra des données?

Le Nexus S prend en charge le mode peer-to-peer , qui, comme son nom l'indique, fait qu'un téléphone agit comme une balise qu'un autre téléphone peut lire. Il y a eu une très bonne session Google I / O sur NFC cette année. Je recommanderais de le regarder si vous êtes intéressé par NFC.

Erich Douglass
la source
Merci. Cela me rend clair. Mais un lecteur NFC peut-il lire à partir du téléphone?
Joshua Partogi
@jpartogi Je ne suis pas tout à fait sûr, mais je pense que le lecteur devrait explicitement prendre en charge le mode peer-to-peer pour que cela fonctionne.
Erich Douglass
Le mode peer-to-peer est lorsque les DEUX téléphones ou périphériques font office de lecteurs. L'information n'est pas tant lue qu'elle est poussée (écrite) d'avant en arrière.
Ben Ward
9

Oui, vous pouvez. Android kitkat booste cette fonctionnalité ici

iglen_
la source
3

Lisez ici: http://groups.google.com/group/android-developers/browse_thread/thread/d5fc35a9f16aa467/dec4843abd73d9e9%3Flnk%3Dgst%26q%3Dsecure%2Belement%2Bdiff%2527s%23dec481d73abd73abd73

Je ne l'ai pas vérifié moi-même, mais il semble que les gens aient réussi à inclure à nouveau le code caché dans Android. Ils semblent pouvoir émuler une carte Mifare Classic (iso-14443). Je vais bientôt tester moi-même, ça a l'air très intéressant.

Si vous voulez le faire pour une application commerciale / gratuite, vous aurez du mal, vos utilisateurs n'aimeront pas changer leur noyau pour prendre en charge votre application.

Mise à jour: Il y aurait une astuce simple pour que votre téléphone émule un ticket:
vous pouvez obtenir un autocollant NFC et le mettre dans ou sur le téléphone. De cette façon, vous pouvez le lire et l'écrire à tout moment et d'autres appareils peuvent également le lire et l'écrire.
C'est juste une idée que j'ai eue, jamais vue qui a été utilisée nulle part bien sûr;)

John
la source
Nous avons essayé l'astuce avec l'émulation de balises NFC sur iPhone avec iCarte. Cela pourrait fonctionner ... mais nous avons décidé de l'annuler, car c'est vraiment inutilisable ...
STeN
2

Oui, jetez un œil à NDEF Push dans NFCManager - avec Android 4, vous pouvez même créer le NDEFMessage à pousser vers l'appareil actif au moment de l'interaction.

Sven Haiges
la source
1
C'est le mode p2p, n'est-ce pas? Pas d'émulation de balises mandatée par le forum NFC.
STeN
2

Dans la session google io sur NFC, section qa. Il y avait une telle question:

émulation de carte? Pas de prise en charge d'API pour l'émulation de carte Aucune expérience utilisateur cohérente lors de l'émulation de carte et aucune histoire convaincante

Jason
la source
Encore une fois - la raison pour laquelle l'émulation de la carte n'est `` pas autorisée '' est que l'élément généralement sécurisé doit être utilisé, mais pour les tags NFC n'ont aucune sécurité (en fait, ils NE PEUVENT PAS en avoir). Cela élimine le besoin d'élément sécurisé et il peut être possible de l'émuler via le code d'application.
STeN
1

Si vous voulez demander à un appareil NFC alimenté de faire semblant d'être passif (par exemple, une balise) .. je ne sais pas si cela fonctionne bien, mais l'application Android NFCClassic prétend enregistrer le contenu de la balise, puis permettre à la balise d'être activée et de sembler être l'étiquette copiée sur les lecteurs NFC. Crée une bibliothèque de balises enregistrées.

mobycoder
la source
0

Pour la technologie NFC, c'est facile. Pour Google, il ne le prendra pas en charge en tant que portefeuille Google.

xding
la source
0

Non, pas en ce moment. Google a souligné lors du Google IO 2011, que l'émulation de carte n'est pas prise en charge et ne sera pas prise en charge pendant un certain temps. Problème principal (et facile à comprendre): quelle application doit avoir le droit sur le téléphone pour émuler une carte à puce?

Denbec
la source
La bonne façon de faire est d'avoir la possibilité pour l'IC d'accepter les informations de chaque info sur demande ...
Obmerk Kronen
0

Vous pouvez certainement faire en sorte qu'un téléphone Android écrive sur un lecteur de balises en utilisant la fonctionnalité NDEFPush dans le support peer-to-peer - mais vous devrez écrire le code du côté du lecteur de balises pour utiliser également peer-to-peer (llcp) .

gamozzii
la source
0

Oui, vous pouvez ce qui est le mode Peer-to-Peer

Mode peer-to-peer


Connexion P2P bidirectionnelle pour échanger des données entre appareils

–Interactions déclenchées par la proximité

–Nexus S: les appareils doivent être placés dos à dos

Exemple d'applications

–Échange de vCards

- Remise des billets et paiement P2P

–Partage de pages Web, partage de vidéos sur Youtube

–Partage d'applications

Ranjith Subramaniam
la source
0

Il est possible de faire en sorte que l'appareil Android se comporte comme un tag NFC. Un tel comportement est appelé émulation de carte .

  • L'émulation de carte peut être basée sur l'hôte (HCE) ou basée sur un élément sécurisé (CE).
  • Dans HCE, une application exécutée sur le processeur principal Android répond au lecteur. Donc, le téléphone doit être allumé.
  • Dans CE, une applet résidant dans l'élément Secure répond au lecteur. Ici, il suffit d'avoir le contrôleur NFC sous tension, avec le reste de l'appareil suspendu.
  • L'une de ces approches ou les deux peuvent être actives simultanément.
    Une table de routage indique au contrôleur NFC où acheminer les commandes du lecteur.
Padmanabha V
la source
Peut fournir des références ou des cas d'utilisation?
AbhinayMe