Host Card Emulation auf Android (4.4 / KitKat und höher) mit Nexus 5

8

Ich versuche, ein NFC-Tag mit meinem Nexus 5 nach dieses Dokument , aber mein Dienst wird nie aufgerufen. Soll ich Android Beam ausschalten?

Ich möchte ein einfaches Tag mit einer URL emulieren.

Der Leser ist ein Nexus 7 (2012) und ich habe den Prozess wie einen einfachen Scan eines NFC-Tags mit Android-Beam auf Nexus 7 herausgefunden.

Außerdem bin ich etwas verwirrt über den Namen des Aid-Filters. Gibt es eine Liste von ihnen?

Ich bin mir sicher, dass ich etwas nicht verstehe. Danke

    
Michelantonio Trizio 18.04.2014, 14:01
quelle

1 Antwort

15

Zunächst (obwohl dies Ihre Frage nicht direkt beantwortet), ist die bevorzugte Methode zum Übertragen einer URL zwischen zwei Android NFC-Geräten die Verwendung von Android Beam (Peer-to-Peer-Modus). Android HCE (Host Card Emulation) ist in der Regel für die Emulation von kontaktlosen Smartcard-Anwendungen mit Ausnahme von NFC-Tags vorgesehen.

Muss ich Android Beam ausschalten, um Android HCE verwenden zu können?

Nein, Android HCE wird nicht von der Ein / Aus-Einstellung von Android Beam beeinflusst. Selbst wenn Beam deaktiviert ist, führt ein Android-NFC-Gerät dennoch eine Peer-to-Peer-Modus-Linkaktivierung durch.

Ich möchte ein einfaches Tag mit einer URL emulieren.

Android HCE emuliert Smartcard-Anwendungen basierend auf ISO / IEC 14443-4 und ISO / IEC 7816-4. Wenn Sie damit ein NFC-Tag emulieren möchten, müssen Sie die Type 4 Tag Operation-Spezifikation des NFC-Forums in Ihrem Android HCE-Dienst implementieren. Die Spezifikationen des NFC-Forums sind auf der Website frei verfügbar.

Um die Anforderungen dieser Spezifikation zusammenzufassen:

  1. Sie müssen Ihren Dienst für die NFC Forum Type 4-Tag-Anwendung AID registrieren: D2760000850101 .
  2. Ihr Dienst muss mit einem Statuscode-Erfolg ( 0x9000 ) auf eine SELECT (nach DF-Name) APDU für dieses AID antworten:

    %Vor%
  3. Ihr Service muss mit einem Statuscode-Erfolg für eine SELECT (durch EF ID) APDU für die Capability Container (CC) -Datei ( E103 ) antworten:

    %Vor%
  4. Ihr Dienst muss mit dem CC (oder Teilen davon) antworten, nachdem er eine BINARY-APDU-READ empfangen hat (nachdem die CC-Datei ausgewählt wurde):

    %Vor%
  5. Ihr Service muss mit einem Statuscode-Erfolg für eine SELECT (durch EF ID) APDU für die NDEF-Datei (EF ID wie im CC definiert) antworten:

    %Vor%
  6. Ihr Dienst muss mit dem NDEF-Dateiinhalt (oder Teilen davon) antworten, nachdem er eine BINARY-APDU-READ empfangen hat (nachdem die NDEF-Datei ausgewählt wurde):

    %Vor%

Ich möchte ein zweites Android-Gerät automatisch die URL abholen.

Das ist der problematische Teil und der Grund, warum Beam der bevorzugte Weg ist. Selbst wenn Sie ein NFC Forum Type 4-Tag mit einem Android-Gerät emulieren, führt das Zusammenstellen von zwei Android-Geräten immer noch dazu, dass sie eine Peer-to-Peer-Verbindung aufbauen (selbst wenn Beam ausgeschaltet ist!). Daher wird das zweite Android-Gerät Ihre HCE-emulierte Karte nicht als NFC-Tag erkennen. Die einzige Möglichkeit, diese Einschränkung zu überwinden, ist die Verwendung der NFC-Reader-Modus-API (neu in Android 4.4) auf dem zweiten Gerät. In diesem Fall benötigen Sie jedoch eine App auf dem empfangenden Gerät, das im Vordergrund aktiv ist (nur so können Sie die Reader-Modus-API aktivieren).

    
Michael Roland 20.04.2014, 08:51
quelle

Tags und Links