onNewintent non viene chiamato per l'implementazione Android NFC senza abilitare il raggio Android
-
21-12-2019 - |
Domanda
Ho lavorato su campioni NFC per la modalità Peer-To-Peer
.Ho implementato il metodo onResume
in due modi diversi, per la modalità iniziatore e la modalità Target di seguito:
Per la modalità Iniziatore:
mAdapter.setNdefPushMessage(getTestNdefMessage(), this);
.
e per la modalità TARGET:
mAdapter.enableForgroundDispatch(this, pendingIntent, null, null);
.
Ho creato un telefono Android come iniziatore e altro come bersaglio e rimettili indietro.Qui, posso ascoltare il suono del rilevamento del dispositivo NFC ma non riceve alcuna chiamata a onNewIntent
sul set di telefono Android come modalità target.
Qualcuno può aiutarmi dove ho torto, nel concetto o nell'attuazione.Se abilito Android NFC Beam
da settings
di quanto ottengo la notifica sul dispositivo Initiator
per Touch to Beam
.In questo caso ottengo una chiamata a onNewIntent
.
Qualsiasi direzione sarà utile.
Soluzione
Android Beam è Solo funzionalità di comunicazione peer-to-peer-to-peer di Android.Quindi, quando disabilita il raggio Android, il dispositivo non sarà in grado di inviare o ricevere messaggi su modalità peer-to-peer.Di conseguenza, generacodicitagcode (et al) non si spara quando si mette insieme due telefoni se il raggio è disabilitato.
Il raggio Android è implementato in cima allo stack di protocollo di modalità peer-to-peer standard del forum NFC:
+--------------------------------------------+
| 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) |
+--------------------------------------------+
.
(l'iniziatore della terminologia "e" bersaglio "che si utilizza è rilevante solo sul livello NFCIP-1. Normalmente entrambe le parti sarebbero implementate su un dispositivo NFC e due dispositivi NFC (un po 'automaticamente) sono d'accordo su chi prende ilRuolo dell'iniziatore e che prende il ruolo di destinazione.)
Quindi, in genere, implementaresti in genere tutti i livelli fino a SCREP per comunicare con un dispositivo Android che ha un raggio.Windows Phone 8 e BlackBerry sono già implementati da SNEP per lo scambio dati peer-to-peer NDEF.