Aller au contenu
Langue : FR

Un téléphone peut-il émuler un tag NDEF pour un autre téléphone ?

Sur Android, oui. Un service d'émulation de carte par l'hôte qui enregistre l'identifiant de la NDEF Tag Application et répond à ses commandes présente le téléphone comme un tag de type 4, que n'importe quel lecteur lit. L'autre téléphone doit lire plutôt qu'émuler, et le mode pair à pair a disparu des deux plateformes.

Un tag de type 4 est un jeu de réponses

Rien dans la séquence de type 4 n'exige une puce. Un lecteur sélectionne la NDEF Tag Application par son identifiant, sélectionne le fichier du conteneur de capacité, le lit, puis sélectionne et lit le fichier NDEF, comme l'expose la page du type 4. Un code qui répond à ces commandes par des octets à lui est, du côté du lecteur, un tag de type 4.

Sur Android ce code est un service d'émulation de carte par l'hôte : il enregistre l'identifiant dans son XML, comme le décrit la page de la mise en place, et répond aux commandes SELECT et READ BINARY qui suivent. Les contraintes du mécanisme s'appliquent inchangées : ISO-DEP sur NFC-A, un seul canal logique, un échange tenu près des mille octets du guide pour que le contact reste bref.

Cela reste une émulation. Le lecteur voit un message, pas un identifiant de tag qu'une puce porterait, et le contenu est ce que le service décide de répondre à cet instant, ce qui est tout l'intérêt de procéder ainsi.

Les deux côtés ne peuvent pas interroger à la fois

Un téléphone qui émule répond à un champ, il n'en produit pas. L'autre téléphone doit donc être le lecteur, et lire délibérément : le mode lecteur suspend l'émulation de carte tant que l'activité est au premier plan, ce que la page du mode lecteur expose à côté de son alternative.

Le téléphone qui émule apporte ses propres conditions. Qu'il réponde écran éteint ou depuis l'écran de verrouillage dépend de la version d'Android et d'un réglage de l'appareil, que la page de l'écran éteint prend version par version. Une démonstration qui marche avec les deux écrans allumés peut échouer dans une poche.

Ce qu'un iPhone fait ici

Un iPhone lit cela sans rien de particulier. Core NFC lit les types 1 à 5 du NFC Forum, donc une session NDEF pose au tag émulé les mêmes questions qu'à un autocollant, et ce sont les réponses qui décident si cela marche.

Un iPhone qui émule est la direction contrainte. Il lui faut une session de carte, depuis iOS 17.4, dont Apple accorde l'habilitation sur demande et dont la liste d'identifiants devrait comprendre l'application NDEF ; la page de l'émulation sur iOS couvre ce que cela suppose.

Ce que le pair à pair a laissé

Le mode bâti pour deux appareils alimentés est retiré des deux plateformes mobiles, comme le raconte la page du mode pair à pair. Ce qui reste à deux téléphones est cet arrangement : l'un émule une carte, l'autre la lit.

Cela suffit à passer un message court, un identifiant ou un lien, et c'est le mauvais outil pour un fichier. Le NFC gagne sa place quand un côté n'a ni énergie ni écran ; entre deux téléphones qui ont les deux, une radio qui porte plus loin transporte davantage.

Questions fréquentes

Le téléphone qui lit a-t-il besoin d'une application particulière ?

Oui. Quelque chose doit lire, par le mode lecteur ou par une lecture NDEF, puisque le téléphone qui émule répond au lieu d'interroger.

Les deux téléphones peuvent-ils émuler en même temps ?

Non. Une carte émulée répond à un lecteur, et deux cartes ne se rencontrent jamais. Un côté interroge, l'autre répond.

Un iPhone peut-il émuler un tag NDEF ?

Seulement par la session de carte sous conditions, depuis iOS 17.4, là où Apple accorde l'habilitation. En lire un ne demande rien de particulier.

Android Beam est-il encore disponible ?

Non. Le mode pair à pair a été retiré des deux plateformes mobiles, ce qui explique que l'émulation soit ce qui reste.