Komunikacja NFC

Na tej stronie opisano, jak sterować komunikacją NFC na urządzeniu Cuttlefish za pomocą funkcji NFC Cuttlefish. NFC jest obsługiwane na urządzeniach Cuttlefish z Androidem 15 lub nowszym.

Używanie Casimira

Funkcja NFC Cuttlefish korzysta z oprogramowania Casimir, które jest zewnętrznym narzędziem do symulowania urządzeń NFC. Umożliwia ono wstrzykiwanie bajtów APDU na potrzeby emulacji karty hosta. Casimir jest zaimplementowany w /platform/system/nfc/tools/casimir/.

Podczas uruchamiania Cuttlefish domyślnie uruchamia się też Casimir. Aby sterować Casimirem, użyj usługi CasimirControlService.

CasimirControlService

Usługi CasimirControlService możesz używać za pomocą interfejsu REST API lub wiersza poleceń. Więcej informacji znajdziesz w artykule Cuttlefish: kontrola środowiska.

W tabeli poniżej opisano metodę CasimirControlService. Więcej informacji znajdziesz w artykule casimir_control.proto.

Metoda Opis
SendApdu Wysyła bajty APDU (ciągi szesnastkowe) za pomocą NFC-A i ISO-DEP. Odpowiedź jest zwracana jako ciągi szesnastkowe.

Poniżej znajduje się przykład polecenia i uproszczona odpowiedź na wysłanie dwóch bajtów APDU, [0x00, 0x11, 0x22][0x33, 0x44, 0x55].

  • Polecenie

    cvd env call CasimirControlService SendApdu '{apdu_hex_strings: ["001122", "334455"]}'
    
  • Uproszczona odpowiedź

    Rpc succeeded with OK status
    {
    "responseHexStrings": [
      "9000",
      "9000",
    ]
    }