Komunikacja NFC

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

Korzystanie z Casimir

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

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

CasimirControlService

Możesz używać usługi CasimirControlService za pomocą interfejsu API typu REST lub interfejsu wiersza poleceń. Więcej informacji znajdziesz w artykule Cuttlefish: Environment Control.

W tabeli poniżej opisaliśmy metodę w CasimirControlService. Więcej informacji znajdziesz w 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 znajdziesz przykładowe polecenie i uproszczoną odpowiedź na wysłanie 2 bajtów APDU: [0x00, 0x11, 0x22] i [0x33, 0x44, 0x55].

  • Polecenie

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

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