Question

Je travaille sur des échantillons NFC depuis Peer-To-Peer mode.j'ai implémenté onResume méthode de deux manières différentes, pour le mode initiateur et le mode cible, comme ci-dessous :

Pour le mode initiateur :

mAdapter.setNdefPushMessage(getTestNdefMessage(), this);

et pour le mode cible :

mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);

J'ai créé un téléphone Android comme initiateur et un autre comme cible et je les ai mis dos à dos.Ici, je peux écouter le son de détection du périphérique NFC mais je ne reçois aucun appel vers onNewIntent sur le téléphone Android défini comme mode cible.

Quelqu'un peut-il m'aider là où je me trompe, dans le concept OU dans la mise en œuvre.Si j'active Android NFC Beam depuis settings que je reçois une notification Initiator appareil pour Touch to Beam.Dans ce cas, je reçois un appel au onNewIntent.

Toute direction sera utile.

Était-ce utile?

La solution

Faisceau Android est La seule fonctionnalité de communication peer-to-peer d'Android.Ainsi, lorsque vous désactivez Android Beam, votre appareil ne pourra pas envoyer ou recevoir de messages en mode peer-to-peer.Par conséquent, onNewIntent (et al) ne se déclenchera pas lors de l'assemblage de deux téléphones si Beam est désactivé.

Android Beam est implémenté au-dessus de la pile de protocoles en mode peer-to-peer standard du NFC Forum :

+--------------------------------------------+
| Android Beam                               |
+--------------------------------------------+
| NDEF (NFC Data Exchange Format)            |
+--------------------------------------------+
| SNEP (Simple NDEF Exchange Protocol)       |
| (or NDEF Push Protocol (NPP) for backwards |
| compatibility to pre-SNEP Android devices) |
+--------------------------------------------+
| LLCP (Logical Link Control Protocol)       |
+--------------------------------------------+
| NFCIP-1 (ISO/IEC 18092)                    |
+--------------------------------------------+

(La terminologie « initiateur » et « cible » que vous utilisez n'est pertinente que sur la couche NFCIP-1.Normalement, les deux parties seraient implémentées sur un appareil NFC et deux appareils NFC se mettraient (quelque peu automatiquement) d'accord sur qui prend le rôle d'initiateur et qui prend le rôle de cible.)

Ainsi, vous implémenterez généralement toutes les couches jusqu'à SNEP afin de communiquer avec un appareil Android doté de Beam.Windows Phone 8 et Blackberry implémentent déjà SNEP pour l'échange de données NDEF peer-to-peer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top