onNewIntent wird nicht für die Android-NFC-Implementierung aufgerufen, ohne Android Beam zu aktivieren

StackOverflow https://stackoverflow.com//questions/22013058

Frage

Ich habe an NFC-Beispielen für gearbeitet Peer-To-Peer Modus.Ich habe umgesetzt onResume Methode auf zwei verschiedene Arten, für den Initiatormodus und den Zielmodus wie folgt:

Für den Initiatormodus:

mAdapter.setNdefPushMessage(getTestNdefMessage(), this);

und für den Zielmodus:

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

Ich habe ein Android-Telefon als Initiator und ein anderes als Ziel erstellt und sie Rücken an Rücken platziert.Hier kann ich den Erkennungston des NFC-Geräts hören, erhalte aber keinen Anruf onNewIntent auf dem Android-Telefon als Zielmodus eingestellt.

Kann mir jemand helfen, wo ich falsch liege, im Konzept ODER in der Umsetzung?Wenn ich es aktiviere Android NFC Beam aus settings dann erhalte ich eine Benachrichtigung Initiator Gerät für Touch to Beam.In diesem Fall bekomme ich einen Anruf onNewIntent.

Jede Richtung wird hilfreich sein.

War es hilfreich?

Lösung

Android Beam Ist Die einzige Peer-to-Peer-Kommunikationsfunktion von Android.Wenn Sie also Android Beam deaktivieren, kann Ihr Gerät keine Nachrichten über den Peer-to-Peer-Modus senden oder empfangen.Folglich, onNewIntent (et al.) wird beim Zusammenfügen zweier Telefone nicht ausgelöst, wenn Beam deaktiviert ist.

Android Beam ist auf dem standardmäßigen Peer-to-Peer-Modus-Protokollstapel des NFC-Forums implementiert:

+--------------------------------------------+
| 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)                    |
+--------------------------------------------+

(Die von Ihnen verwendeten Begriffe „Initiator“ und „Ziel“ sind nur auf der NFCIP-1-Ebene relevant.Normalerweise würden beide Teile auf einem NFC-Gerät implementiert und zwei NFC-Geräte würden sich (etwas automatisch) darauf einigen, wer die Rolle des Initiators und wer die Rolle des Ziels übernimmt.)

Daher würden Sie normalerweise alle Ebenen bis hin zu SNEP implementieren, um mit einem Android-Gerät zu kommunizieren, das über Beam verfügt.Windows Phone 8 und Blackberry implementieren SNEP bereits für den Peer-to-Peer-NDEF-Datenaustausch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top