Android obsługuje emulację karty poza hostem, czyli emulację karty NFC z elementem zabezpieczającym. Więcej informacji znajdziesz w artykule Omówienie emulacji kart na podstawie hosta.
W niektórych przypadkach, np. podczas korzystania z karty FeliCa w transporcie, emulacja karty poza hostem jest dozwolona, gdy ekran urządzenia jest zablokowany lub wyłączony albo gdy urządzenie jest wyłączone.
Bezpieczna komunikacja NFC to funkcja wprowadzona w Androidzie 10, która umożliwia emulację karty NFC poza hostem tylko wtedy, gdy ekran urządzenia jest odblokowany. Wdrożenie tej funkcji daje użytkownikom możliwość włączenia bezpiecznego NFC w celu zwiększenia bezpieczeństwa.
Implementacja
Aby wdrożyć funkcję Bezpieczne NFC, urządzenie musi mieć kontroler NFC, który obsługuje standard NCI 2.0 i musi używać platformy NFC Android Open Source Project (AOSP). Dodaj sprzęt (ro.boot.hardware.sku
), który obsługuje funkcję bezpiecznej technologii NFC, w pliku XML zasobu z atrybutem config_skuSupportsSecureNfc
.
Interfejsy Framework API
Aby wdrożyć bezpieczne NFC, zaimplementuj te interfejsy API frameworku dostępne w projekcie Android Open Source:
isSecureNfcSupported()
: sprawdza, czy urządzenie obsługuje funkcję Zabezpiecz komunikację NFC.isSecureNfcEnabled()
: sprawdza, czy funkcja Zabezpiecz komunikację NFC jest włączona.enableSecureNfc(boolean enable)
: włącza funkcję Bezpieczna komunikacja NFC.
Ustawienia interfejsu
W aplikacji Ustawienia dodaj przełącznik, który umożliwi użytkownikom włączanie i wyłączanie funkcji Bezpieczne NFC. W aplikacji Ustawienia możesz dostosować ustawienie domyślne, aby było włączone lub wyłączone.
Rysunek 1 przedstawia przykład przełącznika do włączania i wyłączania szyfrowania NFC w aplikacji Ustawienia (Ustawienia > Połączone urządzenia > Ustawienia połączeń > NFC > NFC wymaga odblokowywania urządzenia).
Rysunek 1. Przykład przełącznika umożliwiającego włączenie i wyłączenie bezpiecznej technologii NFC
Gdy włączona jest bezpieczna technologia NFC, a użytkownik przyłoży urządzenie do czytnika NFC, na ekranie blokady wyświetli się powiadomienie Odblokuj, aby użyć NFC, jak pokazano na rysunku 2.
Rysunek 2. Powiadomienie na ekranie blokady dotyczące odblokowania, aby użyć komunikacji NFC
Weryfikacja
Aby zweryfikować implementację, włącz funkcję Bezpieczne NFC i sprawdź, czy emulacja karty NFC jest wyłączona, gdy ekran urządzenia jest wyłączony lub zablokowany, oraz gdy urządzenie jest wyłączone.