NFC (Near Field Communication) — technologia bezprzewodowej komunikacji krótkiego zasięgu, umożliwiająca wymianę danych między urządzeniami w odległości do 10 centymetrów. NFC jest używane w telefonach komórkowych do płatności bezstykowych, przesyłania plików i odczytu tagów. Według danych Grand View Research, 2025, rynek układów NFC osiągnął 34,5 miliarda dolarów dzięki masowemu wdrożeniu NFC w smartfonach i infrastrukturze płatniczej na całym świecie.
Najważniejsze
NFC (Near Field Communication) to standard bezprzewodowej transmisji danych na krótkie odległości, działający na częstotliwości 13,56 MHz. Technologia opiera się na RFID (Radio Frequency Identification) i jest wstecznie zgodna z ISO 14443 — standardem bezstykowych kart inteligentnych. Prędkość transmisji danych wynosi 106, 212 lub 424 kb/s w zależności od wybranego trybu.
W przeciwieństwie do Bluetooth, NFC nie wymaga procedury parowania — urządzenia wymieniają dane natychmiast po zbliżeniu do siebie. Maksymalna odległość komunikacji wynosi 10 cm, co zapewnia naturalną ochronę przed przechwyceniem. Według danych NFC Forum, technologia jest obsługiwana przez ponad 3 miliardy urządzeń na całym świecie, a liczba ta rośnie o 15–20% rocznie.
Standard NFC jest rozwijany przez NFC Forum — konsorcjum założone przez Sony, Philips i Nokia w 2004 roku. Pierwszy telefon z NFC (Nokia 6131) pojawił się w 2006 roku, ale masowe rozpowszechnienie rozpoczęło się po wydaniu Android 4.0 (Ice Cream Sandwich) w 2011 roku i uruchomieniu Apple Pay w 2014 roku. Obecnie NFC obsługują praktycznie wszystkie smartfony w cenie powyżej 150 dolarów.
Kontroler NFC w smartfonie obsługuje trzy tryby pracy, z których każdy jest przeznaczony do swojej klasy zadań. Przełączanie między trybami następuje automatycznie w zależności od rodzaju urządzenia interakcyjnego.
W tym trybie telefon działa jako aktywny czytnik tagów NFC. Po zbliżeniu do tagu NFC — naklejki, opaski lub plakatu — telefon odczytuje dane z pamięci tagu. Tagi zawierają od 48 bajtów do 32 KB pamięci i przechowują URL, tekst lub polecenia. Android Beam (zastąpiony przez Nearby Share) używał tego trybu do przesyłania linków i kontaktów.
Dwa urządzenia NFC wymieniają dane bezpośrednio. Jedno urządzenie działa jako inicjator, drugie jako cel. Standard LLCP (Logical Link Control Protocol) zarządza połączeniem, a SNEP (Simple NDEF Exchange Protocol) — formatem danych. Tryb P2P jest używany do szybkiego przesyłania kontaktów, linków lub inicjowania parowania Bluetooth. Prędkość w trybie P2P osiąga 424 kb/s.
Telefon emuluje bezstykową kartę inteligentną — kartę płatniczą, bilet komunikacyjny lub przepustkę. Zewnętrzne urządzenie NFC (terminal POS, bramka) oddziałuje z telefonem tak samo jak ze zwykłą plastikową kartą. Ten tryb jest używany w Apple Pay, Google Pay i Samsung Pay. Bezpieczeństwo płatności zapewnia Secure Element — izolowany układ, który przechowuje dane kart płatniczych.
| Tryb | Przykład użycia | Wymaga Secure Element |
|---|---|---|
| Reader/Writer | Odczyt tagu NFC z URL | Nie |
| Peer-to-Peer | Przekazanie kontaktu między telefonami | Nie |
| Card Emulation | Płatność przez Google Pay | Tak |
NFC i Bluetooth LE (Low Energy) to dwie technologie bliskiego zasięgu, które często są porównywane. NFC wygrywa w szybkości nawiązywania połączenia (0,1 s) i nie wymaga parowania, ale ustępuje pod względem prędkości transmisji danych i zasięgu. Bluetooth LE wymaga parowania (2–5 sekund), ale zapewnia prędkość do 2 Mb/s i zasięg do 100 metrów.
W praktyce NFC i Bluetooth nie konkurują, lecz uzupełniają się. NFC jest używane do inicjowania połączenia (handover): wystarczy zbliżyć telefon do urządzenia, aby NFC przekazało parametry połączenia Bluetooth (NFC Bluetooth Handover). Następnie urządzenia przełączają się na Bluetooth w celu szybkiego przesyłania plików lub strumienia audio.
Moduł NFC w smartfonie składa się z trzech komponentów: kontrolera NFC (NFC Controller), anteny NFC i Secure Element (do operacji zabezpieczonych). Kontroler NFC to oddzielny układ lub część kombinowanego modułu łączności (NFC + Bluetooth + Wi-Fi, np. WCN3990 od Qualcomm). Zarządza on interfejsem radiowym i protokołami wymiany.
Antena NFC to drukowana cewka na elastycznym podłożu (FPC) lub na obudowie akumulatora. Rozmiar anteny to 20×30 mm, liczba zwojów — 3–5. Antena jest podłączona do kontrolera przez układ dopasowujący, dostrojony do częstotliwości 13,56 MHz. Według danych NXP Semiconductors, efektywna praca anteny wymaga precyzyjnego obliczenia indukcyjności i dobroci.
Secure Element (eSE) — oddzielny układ kryptograficzny (NXP P71, Samsung S3K) lub izolowany obszar w SoC (iSE — integrated Secure Element). Przechowuje dane kart płatniczych i wykonuje operacje kryptograficzne dla HCE (Host Card Emulation). Secure Element jest izolowany od Android/iOS: dostęp do niego ma tylko kontroler NFC za pośrednictwem poleceń APDU przez magistralę SWP (Single Wire Protocol).
// Przykład polecenia APDU do interakcji z Secure Element
const uint8_t SELECT_APDU[] = {
0x00, 0xA4, 0x04, 0x00, // CLA, INS, P1, P2
0x07, // długość danych (7 bajtów)
0xA0, 0x00, 0x00, 0x00, // RID — zarejestrowany
0x03, 0x10, 0x10, // PIX — identyfikator aplikacji
0x00 // Le — oczekiwana długość odpowiedzi
};
// Wysłanie polecenia przez kontroler NFC do Secure Element
NfcStatus nfcStatus = sendApdu(SELECT_APDU, sizeof(SELECT_APDU));
NFC w telefonie jest używane w czterech głównych scenariuszach: płatności bezstykowe, transport, dostęp do obiektów i automatyzacja zadań. Najbardziej masowym zastosowaniem są systemy płatnicze: Apple Pay, Google Pay i Samsung Pay. Używają one trybu Card Emulation z HCE (Host Card Emulation) lub Secure Element do emulacji karty bankowej.
Systemy transportowe na całym świecie (Metro Moskiewskie, London Tube, New York MTA) akceptują płatności NFC przez portfele mobilne. W Japonii technologia FeliCa (Sony) oparta na NFC jest używana do przejazdów, zakupów i dostępu do biur od 2004 roku. Smartfony z układem FeliCa, takie jak iPhone na rynek japoński, obsługują Suica i PASMO.
Tagi NFC (NFC Tags) umożliwiają automatyzację scenariuszy „smart home”: zbliż telefon do tagu przy łóżku — włączy się budzik i wyłączą powiadomienia. Na Androidzie realizuje się to przez Android Beam / NFC Tools, na iOS — przez Shortcuts i wyzwalacze NFC. Niektóre smartfony używają również NFC do szybkiego ładowania — standard Qi używa NFC do identyfikacji ładowarki.
Android udostępnia API do obsługi tagów NFC przez Intent System. Po zbliżeniu tagu do telefonu system tworzy intent z tagiem, a aplikacja otrzymuje dane w formacie NDEF (NFC Data Exchange Format). Poniżej znajduje się przykład Activity, która odczytuje URL lub tekst z tagu NFC.
class NfcReaderActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_nfc)
handleNfcIntent(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleNfcIntent(intent)
}
private fun handleNfcIntent(intent: Intent) {
if (intent.action == NfcAdapter.ACTION_NDEF_DISCOVERED) {
val rawMessages = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
rawMessages?.forEach { rawMsg ->
val msg = rawMsg as NdefMessage
msg.records.forEach { record ->
val payload = String(record.payload)
println("Dane NFC: $payload")
}
}
}
}
}
Do działania NFC należy zadeklarować uprawnienie android.permission.NFC w manifeście i skonfigurować intent-filter dla ACTION_NDEF_DISCOVERED, ACTION_TECH_DISCOVERED lub ACTION_TAG_DISCOVERED. Android automatycznie filtruje tagi NFC według typu rekordów NDEF — umożliwia to aplikacji reagowanie tylko na tagi o określonym typie MIME lub prefiksie URL. Należy pamiętać, że antena NFC zwykle znajduje się w górnej części tylnego panelu telefonu — do odczytu tagu należy zbliżyć górną część telefonu do tagu.
Często zadawane pytania
Tak, do płatności bezstykowych NFC musi być włączone w ustawieniach telefonu. Google Pay automatycznie aktywuje NFC przy zbliżeniu do terminala, nawet gdy ekran jest wyłączony (na urządzeniach z Android 10+ i zainstalowanym Google Wallet). W przypadku Apple Pay NFC włącza się automatycznie i nie wymaga ręcznej aktywacji.
Standardowy zasięg NFC wynosi do 10 centymetrów. W praktyce dla niezawodnego połączenia zaleca się zbliżyć telefon na odległość 2–4 cm od czytnika. Mniejszy zasięg czyni NFC bezpieczniejszym od Bluetooth — osoba nieuprawniona nie może zdalnie odczytać danych.
Teoretycznie tag NFC może zawierać link do złośliwej strony, ale wymaga to dziańania użytkownika — kliknięcia w link. Automatyczne zakażenie przez NFC jest niemożliwe, ponieważ technologia nie obsługuje uruchamiania kodu ani instalacji plików bez potwierdzenia. Systemy operacyjne Android i iOS blokują potencjalnie niebezpieczne działania NFC.
Na Androidzie: otwórz Ustawienia → Połączenia → NFC (lub wyszukaj „NFC” w ustawieniach). Na iPhone: wszystkie modele od iPhone 6 i nowsze obsługują NFC. Niektórzy producenci oznaczają obudowę lub pudełko symbolem NFC. Można również użyć aplikacji NFC Check z Play Market do diagnostyki.
NFC pobiera energię tylko w trybie aktywnym — podczas przesyłania danych. W trybie czuwania kontroler NFC praktycznie nie zużywa energii (0,01 mA). Włączone NFC nie wpływa na czas pracy na baterii telefonu. Różni to NFC od Bluetooth, który pobiera energię nawet w trybie czuwania.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również