Wie kann meine App herausfinden, welcher NFC-Modus aktiviert ist?

8

Ich habe festgestellt, dass Android-Geräte drei NFC-Modi unterstützen: Leser / Schreiber , P2P und Kartenemulation .

Kann meine App überprüfen, welcher Modus momentan aktiviert ist?

    
hoonj 24.04.2015, 08:17
quelle

1 Antwort

1

Nein, Ihre App kann nicht prüfen , welcher Modus gerade aktiviert ist. Der Punkt ist, dass ein Android-Gerät standardmäßig regelmäßig nach allen drei Modi sucht (eigentlich ist es ein bisschen komplizierter als das: diese drei Modi sind selbst in mehrere Teile aufgeteilt, wobei jeder für eine bestimmte Technologie abfragt). Während also der Bildschirm eingeschaltet ist, können Sie erwarten, dass das Android-Gerät zyklisch zwischen dem Abhören für andere Leser und dem Abfragen nach verschiedenen Arten von Tag-Technologien und Peer-to-Peer-Geräten wechselt. Dies ist unabhängig davon, ob Sie sich für das Senden einer Nachricht über den Peer-to-Peer-Modus registriert haben, eine App für HCE registriert ist oder Ihre App für NFC-Erkennungsabsichten registriert ist. Selbst wenn Sie Android Beam in den Einstellungen deaktivieren, bleibt das Gerät für den Peer-to-Peer-Modus verfügbar.

Nur wenn Sie die Kartenemulation und P2P explizit deaktivieren, indem Sie Lesemodus-API (verfügbar für Android 4.4 und höher), kann Ihre App nur diesen Leser / Schreiber steuern Modus ist aktiv (und es kann sogar steuern, für welche Tag-Technologien abgefragt werden soll).

So kann Ihre App wissen , welche Modi sie selbst aktiviert hat und kann einige Ratespiele ausführen, z. B.

  • Wenn der Bildschirm eingeschaltet ist und der Reader / Writer-Modus nicht explizit mithilfe der Reader-Modus-API erzwungen wurde, sind wahrscheinlich alle drei Modi aktiv.
  • Wenn der Bildschirm ausgeschaltet ist, kann nur der Kartenemulationsmodus aktiviert werden (obwohl dies geräteabhängig ist und HCE normalerweise nicht verfügbar ist).
Michael Roland 28.04.2015 07:12
quelle