Komunikacja NFC

Na tej stronie opisaliśmy, 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żyj Casimir

Funkcja NFC w Cuttlefish korzysta z Casimira, zewnętrznego narzędzia do symulacji urządzenia NFC, które obsługuje wstrzykiwanie bajtów APDU na potrzeby emulacji karty hosta. Casimir jest zaimplementowany w /platform/system/nfc/tools/casimir/.

Podczas uruchamiania Cuttlefish domyślnie uruchamiana jest też usługa Casimir. Aby sterować Casimir, użyj usługi CasimirControlService.

CasimirControlService

Możesz korzystać z usługi CasimirControlService za pomocą interfejsu API REST lub interfejsu wiersza poleceń. Więcej informacji znajdziesz w artykule Cuttlefish: Environment Control (w języku angielskim).

W tabeli poniżej opisujemy metodę w CasimirControlService. Więcej informacji znajdziesz w sekcji 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.

Oto przykładowe polecenie i uproszczona odpowiedź na wysłanie 2 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",
    ]
    }