2013-07-23 13 views
6

Ich arbeite mit einem kontaktlosen Leser, um mit meinem Android-Gerät zu kommunizieren.Wie fragt Android nach NFC-Geräten?

Ich habe festgestellt, dass ich zu irgendeinem Zeitpunkt keine Verbindung zu meinem Android-Gerät mit P2P herstellen kann. Wenn ich eine Verbindung herstellen möchte, um eine Übertragung mit Android Beam zu initiieren, muss ich kontinuierlich versuchen, mehrere Male eine Verbindung mit dem Gerät herzustellen.

Ein NFC-Android-Gerät kann kontaktlose Karten, NFC-P2P-Ziele und NFC-P2P-Initiatoren, d. H. 3 verschiedene Modi, erkennen. Ich fange an zu denken, dass hinter den Kulissen irgendeine Art von Polling stattfindet, die sehr schnell zwischen den drei Modi wechselt.

Dies bedeutet, dass zu jedem Zeitpunkt, wenn ich versuche, eine Verbindung mit dem Telefon herzustellen, es möglicherweise nicht im richtigen Modus ist und nicht fehlschlägt. Aus diesem Grund muss ich mehrere Verbindungen versuchen.

Ich habe auf der Android-Quelle zu versuchen und dies herauszufinden, ohne echtes Glück. here ist die vielversprechendste Datei, die ich bisher gesehen habe, aber es macht immer noch keinen Sinn.

Meine Frage ist: Wie erkennt Android mehrere NFC-Modi, verwendet es einen Umschalt-Algorithmus und wenn ja, was sind die Besonderheiten des Algorithmus?

Danke.

Antwort

5

Ich beginne zu glauben, dass es einige ist Art von Polling hinter den Kulissen geht, die sehr schnell zwischen den drei Modi schaltet.

Genau das geht weiter. Die verschiedenen Technologien werden zeitgemultiplext. Es gibt viel mehr als drei Modi. Typischerweise wird eine NFC-Einrichtung abzufragen, für:

  • Leser ein
  • Reader ISO14443 B
  • Reader FeliCa ISO14443 (auch bekannt als Tag-Typ 3)
  • Reader ISO15693
  • Karten Emulation ISO14443 A
  • Karte Emulation ISO14443 B
  • Kartenemulation Felica

Peer-to-Peer-Modus verwendet Reader A, Reader FeliCa als Initiator. Kartenemulation A und Kartenemulation Felica werden auch als Peer-to-Peer-Zielmodus-Technologie verwendet.

Das genaue Timing der Abfrage ist nicht öffentlich und Sie werden nicht viel darüber im Quellcode finden. Dies geschieht intern durch den NFC-Chip.

+0

Große Antwort, um meinen Verdacht zu bestätigen, danke. Stört es mich zu fragen, wie Sie das wissen? Haben Sie Referenzlinks, über die ich einen Scan machen könnte? Vielen Dank. – conor

+0

Nun, ich kenne jeden einzelnen NFC-Chip von innen heraus, weil ich in meinem Job tatsächlich Chips und NFC-Middleware entwickle. (Teil eines Teams der Ursache). Wenn Chips nicht funktionieren und Verbindungsprobleme haben, ist es oft meine Aufgabe, einen HF-Tracer anzuschließen, zu erfassen, was passiert, und auf die Bit-Ebene zu graben, wo das Problem liegt. So sehe ich jeden Tag die Polling-Schleife. –