Czytanie tagów NFC za pomocą iPhone'a 6 / iOS 8

96

Teraz, gdy Apple właśnie ogłosił, że iPhone 6 będzie miał chip NFC, czy ktoś wie, czy iOS 8 umożliwi odczyt / wykrywanie tagów RFID dla urządzenia iPhone 6? Czy ktoś ma jakieś informacje na ten temat?

Bryan C.
źródło

Odpowiedzi:

169

IPhone6 ​​/ 6s / 6 + NIE są przeznaczone do odczytu pasywnych tagów NFC (inaczej Discovery Mode). Jest wiele błędnych informacji na ten temat, więc pomyślałem, że przedstawię kilka namacalnych informacji do rozważenia przez programistów. Brak obsługi odczytu tagów NFC nie jest spowodowany oprogramowaniem, ale sprzętem. Aby zrozumieć, dlaczego, musisz zrozumieć, jak działa NFC. NFC działa na zasadzie modulacji obciążenia. Oznacza to, że interrogator (PCD) emituje nośne pole magnetyczne, które zasila pasywny cel (PICC). Z potencjałem generowanym przez to pole nośne, cel jest następnie w stanie demodulować dane pochodzące z interrogatora i odpowiadać modulując dane ponad tym samym polem. Kluczem tutaj jest to, że cel nigdy nie tworzy własnego pola.

Jeśli spojrzysz na rozebranie iPhone'a6 i listę części, zobaczysz obecność bardzo małej anteny pętlowej NFC, a także użycie wzmacniacza IC AS3923 . Ten projekt był przeznaczony dla niestandardowych kart microSD lub SIMaby umożliwić dokonywanie płatności za pomocą starych telefonów komórkowych. Jest to typ aplikacji, w którym telefon komórkowy prezentuje poświadczenie emulowane za pomocą karty do bezstykowego terminala POS o dużej mocy. Terminal POS działa jako czytnik, zasilając iPhone6 ​​za pomocą układu AS3923. Schemat blokowy AS3923 wyraźnie pokazuje, w jaki sposób modulacja RX i TX jest wzmacniana przez sygnał prezentowany przez urządzenie czytające. Innymi słowy, iPhone6 ​​nie ma zapewniać pola, tylko reagować na nie. Dlatego jego konstrukcja jest przeznaczona tylko do emulacji karty NFC i być może Peer-2-Peer, ale zdecydowanie nie do tagowania Discovery.

Układ scalony wzmacniacza AS3923

Istnieją pewne alternatywy dla osiągnięcia Tag Discovery z iPhone6 ​​przy użyciu akcesoriów sprzętowych . Omawiam te integracje i jak programiści mogą projektować rozwiązania w tym poście na blogu . Nasze projekty czytników o małej mocy otwierają interesujące możliwości zaangażowania mobilnego, o których myśli niewielu programistów.

Ujawnienie: Jestem założycielem Flomio, Inc. , firmy TechStars, która dostarcza sprzęt, oprogramowanie i usługi związane z identyfikatorami zbliżeniowymi do aplikacji, od kontroli dostępu po płatności.

Aktualizacja: ta plotka , jeśli jest prawdziwa, otworzyłaby iPhone'owi możliwość praktycznie obsługi trybu wykrywania tagów NFC. Konstrukcja wykonana w całości ze szkła nie koliduje z anteną NFC, podobnie jak metalowy tył obecnego iPhone'a. Wypróbowaliśmy to podejście projektowe - aczkolwiek z tańszymi materiałami - w przypadku niektórych naszych niestandardowych projektów czytników z powodzeniem, więc nie możemy się doczekać tej poprawy.

Aktualizacja: iOS11 ogłosił obsługę „trybu czytnika NFC” dla iPhone7 / 7 +. Szczegóły tutaj . Interfejs API obsługuje tylko odczytywanie komunikatów NDEF (bez APDU ISO7816), gdy aplikacja jest na pierwszym planie (bez wykrywania w tle). Premiera jesienią 2017 ... zobacz zrzut ekranu z przemówienia WWDC:

wprowadź opis obrazu tutaj

grundyoso
źródło
2
Nie jestem specjalistą od sprzętu, ale czy jest szansa, że ​​porzucenie iPhone'a nie pokazało wszystkiego? Czy to jest ostateczna analiza? Nie możesz odczytać pasywnych tagów NFC?
Salaryman
3
Zaprojektowałem kilka czytników NFC i na podstawie tego, co widziałem od początku, studiując układ i obserwując, jak zachowuje się iPhone6 ​​w stosunku do NFC, to jest moja opinia. Sam fizycznie nie zdemontowałem iPhone'a6, więc nie jest wykluczone, że gdzieś ukryty jest cewka nawinięta powietrzem ze śladami omijającymi AS3923. Moim głównym celem jest to, że byłoby to niekonwencjonalne i w najlepszym przypadku słabo sprawdza się w czytaniu tagów.
grundyoso
@grundyoso Gdyby tylko Twoja firma mogła stworzyć przyzwoity pakiet SDK, byłoby wspaniale. Czy są jakieś aktualizacje Flomio SDK? Wciąż ograniczony do wydatków - 1200 $ + klub?
Dan1one
@ Dan1one, wciąż nad tym pracujemy. Nasi użytkownicy wersji beta znaleźli błędy, które wciąż naprawiamy, więc ograniczenie 1200 $ + ma na celu skupienie naszych wysiłków. Gdy będziemy zadowoleni z jakości, wyślemy Flomio SDK do wszystkich naszych klientów. Dołączona będzie wtyczka Cordova, która znacznie ułatwi tworzenie rozwiązań internetowych.
grundyoso
1
@Randomblue Przejrzałem porzucenie na iFixIt, kiedy wyszedł 6S, a układ wzmacniacza i mała antena pozostały. Nasze akcesoria sprzętowe dojrzewają dobrze, aby sprostać tym wymaganiom, dzięki częstym aktualizacjom Flomio SDK w celu łatwej integracji. Rozważ dołączenie do nas na TrackHack, aby bawić się nimi wraz z niesamowitym sprzętem od innych dostawców RFID.
grundyoso
43

Od zagłębienia się w dokumentację iOS 8, która jest dostępna od 9 września o 15:30, nie ma wzmianki o dostępie programisty do kontrolera NFC w celu wykonywania jakichkolwiek operacji NFC; Obejmuje to odczytywanie tagów, zapisywanie tagów, parowanie, płatności, emulację tagów ... Biorąc pod uwagę jego kontroler NXP, sprzęt może wykonywać te funkcje. Wspomnieli o aplikacji innej firmy do zegarka, która pozwoliła gościowi hotelu otworzyć drzwi do pokoju za pomocą NFC. Jest to klasyczny przypadek użycia NFC i daje pewne wskazówki, że kontroler NFC będzie w pewnym momencie otwarty dla programistów. Pamiętaj, że zegarek ma zostać wydany dopiero w pierwszym kwartale 2015 roku. Na razie powiedziałbym, że jest zamknięty, ale wkrótce będzie otwarty. Biorąc pod uwagę `` nowość ''

Ujawnienie: Jestem dyrektorem generalnym GoToTags , firmy NFC z oczywistym zainteresowaniem Apple otwierającym NFC dla programistów.

--- Korekta i aktualizacja ---

W rzeczywistości aplikacja hotelowa korzysta z technologii Bluetooth, a nie z NFC. NFC jest nadal często używany do otwierania drzwi, ale nie w tym jednym przykładzie. NFC może być używane, jeśli zegarek ma otwarty kontroler NFC.

Wiem, że Apple jest tego wszystkiego świadomy i omawia to ze swoimi najlepszymi programistami i interesariuszami. Odnotowano już ogromny negatywny sprzeciw dotyczący braku obsługi odczytywania tagów. Jak to często bywa w przeszłości, spodziewam się, że Apple ostatecznie udostępni to programistom w celu uzyskania funkcji niezwiązanych z płatnościami (odczytywanie tagów, parowanie). Nie sądzę jednak, by Apple kiedykolwiek pozwoliło na inne portfele. Udostępnianie plików prawdopodobnie również zostanie przekazane AirDrop.

--- Aktualizacja 23 marca 2016 r. ---

Ciągle jestem proszony o aktualizacje na ten temat, często z osobami odwołującymi się do tego postu. Wraz z wypuszczeniem iPhone'a SE przez Apple wielu ponownie pyta, dlaczego Apple jeszcze nie obsługuje odczytu tagów. Podsumowując, Apple bardziej skupia się na sukcesie Apple Pay niż na innych przypadkach użycia NFC na razie. Apple może zarobić dużo pieniędzy na Apple Pay i ma mniej do zarobienia na innych zastosowaniach NFC. Apple prawdopodobnie otworzy odczyt tagów NFC, gdy uznają, że zaufanie konsumentów i bezpieczeństwo związane z NFC i Apple Pay są takie, że nie narazi Apple Pay na ryzyko. Więcej informacji tutaj .

--- Aktualizacja 24 maja 2017 r. ---

Deweloper z Grecji zhakował iPhone'a 6s, aby odczytać tagi NFC za pośrednictwem prywatnych struktur NFC; więcej informacji i wideo . Chociaż nie jest to rozwiązanie długoterminowe, zawiera pewne wskazówki dotyczące niektórych nierozstrzygniętych kwestii: czy kontroler NFC w telefonie iPhone jest wystarczający do zasilania tagu NFC? Wygląda na to, że odpowiedź brzmi tak . Od początkowych testów zasięg wynosi kilka cm, co nie jest takie złe. Być może moc jest przestrajalna; jest to obecnie badane. Konsekwencje tego są znaczące. Jeśli starsze modele telefonów mają wystarczającą moc RF do odczytu / zapisu tagów, to gdy Apple otworzy SDK, oznacza to, że będzie 100 milionów iPhone'ów, które mogą odczytywać tagi NFC, w porównaniu z przypadkiem, w którym tylko nowe iPhone'y mogą.

craig.tadlock
źródło
Oto link do PassKit, części pakietu SDK dla systemu iOS. developer.apple.com/library/prerelease/ios/documentation/…
craig.tadlock
Czytając dokumentację dotyczącą Apple Pay , którą udało mi się znaleźć, nie ma wzmianki o NFC. To wszystko, co mogłem na razie znaleźć. Nie jestem jeszcze przekonany, że iPhone 6 będzie miał nawet NFC. Widziałem to w artykule prasowym, ale reporterzy mogą mylić API systemu płatności dla płatności NFC. Czy możesz udostępnić link do jakiejkolwiek dokumentacji Apple, która stwierdza, że ​​iPhone 6 będzie miał sprzęt NFC?
strwils
7
Czy oglądałeś kanał? Kiedy rozmawiali o Apple Pay, pojawił się ogromny tekst „NFC”. Idź, sprawdź nagranie TechCrunch.
craig.tadlock
Nie, nie wiedziałem. Dzięki, sprawdzę to.
strwils
2
@tricknology TouchID istnieje dopiero od czasu iPhone'a 5S, czyli prawie dokładnie rok temu. API zostało udostępnione programistom 3 miesiące temu.
Tim Bodeit,
5

W tej chwili nie ma otwartego dostępu do kontrolera NFC. Obecnie nie ma interfejsów API NFC w iOS 8 GM SDK - co wskazywałoby, że funkcja NFC będzie ograniczona do Apple Pay w momencie premiery. To jest nasze zrozumienie.

Oczywiście chip NXP wewnątrz iPhone'a 6 prawdopodobnie będzie w stanie zrobić więcej, więc nie oznacza to, że dodatkowe funkcje (parowanie, skanowanie / kodowanie tagów) nie zostaną dodane do wydania lub w najbliższej przyszłości.

Złupić
źródło
2

W tej chwili Apple nie udostępnił programistom dostępu do wbudowanego układu NFC, jak sugeruje wiele artykułów, takich jak te:

I tak dalej. Wydaje się, że głównym powodem (podobnie jak wiele innych funkcji sprzętowych dodanych do iPhone'a w przeszłości) jest to, że Apple chce zapewnić bezpieczeństwo takiej technologii przed wydaniem jakiegokolwiek interfejsu API dla programistów, aby mogli robić, co chcą. Więc na początku będą używać go wewnętrznie tylko do swoich potrzeb (takich jak Apple Pay w momencie premiery).

„W tej chwili nie ma otwartego dostępu do kontrolera NFC” - powiedział RapidNFC, dostawca tagów NFC. „Obecnie pakiet SDK GM dla systemu iOS 8 nie zawiera interfejsów API NFC”.

Ale ostatecznie myślę, że wszyscy możemy się zgodzić, że opracują takie API, to tylko kwestia czasu.

m4rtin
źródło
7
Zdajesz sobie sprawę, że odwoływałeś się do artykułów, które używają tego pytania jako źródła?
Zatoczyło
Nie zdawałem sobie sprawy, że reporterzy techniczni używali SO jako źródła, ale myślę, że ma to sens. W każdym razie chciałem tylko przytoczyć źródła, ponieważ pierwotne pytanie dotyczyło możliwości wydawania przez nas, programistów, kodu za pomocą układu NFC osadzonego w ostatnim iPhonie.
m4rtin
@ m4rtin, „Ale ostatecznie myślę, że wszyscy możemy się zgodzić, że opracują takie API, to tylko kwestia czasu”. Nie, to kwestia PIENIĘDZY! Uzyskanie pełnego wsparcia Bluetooth zajęło lata, nie chcą słyszeć rozmowy o lampie błyskowej, aw NFC po prostu wzięli udział w części. Apple integruje technologię tylko wtedy, gdy może wygrać pieniądze. Absolutnie nie dbają o usługi, które techno może zapewnić swoim użytkownikom!
fralbo
2

Możliwość odczytu tagu NFC została dodana do iOS 11, który obsługuje tylko iPhone 7 i 7 plus

Jako jazdę próbną zrobiłem to repozytorium

Po pierwsze: musimy zainicjować klasę NFCNDEFReaderSession

var session: NFCNDEFReaderSession? 
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)

Następnie musimy rozpocząć sesję od:

session?.begin()

a kiedy skończysz:

session?.invalidate()

Delegat (który self powinien zaimplementować) ma zasadniczo dwie funkcje:

func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)

oto moje referencyjne dokumenty Apple

zambi
źródło
Próbuję też przetestować Core NFC. Masz już coś działającego? Zdaję sobie sprawę, że to dopiero pierwszy dzień :)
Blisterpeanuts
@Blisterpeanuts Zaktualizowałem odpowiedź, ale nie działa ona w pełni z powodu brakującej architektury x86_64 w CoreNFC, ale wkrótce to naprawię
zombie
Zobacz stackoverflow.com/questions/44380305/ ... Niektórzy z nas już to działali.
Blisterpeanuts
1

Jedyną dostępną obecnie informacją jest to, że Apple Pay będzie dostępny w ios8, ale nie rzuca to żadnego światła na to, czy tagi RFID, a raczej tagi NFC będą w stanie wykryć / odczytać.

IMO byłoby krótkowzrocznym posunięciem, aby nie dopuścić takiej możliwości, ale tak naprawdę pieniądze są w Apple Pay, niekoniecznie w umożliwieniu programistom dostępu do tych funkcji - widzieliśmy to wcześniej z tetheringiem, Bluetooth SPP i ograniczonym dostępem do niektórych funkcji .

... ale z drugiej strony minęło około 5 godzin od pierwszego ogłoszenia.

DonJohnII
źródło
2
Czy dane NFC z iPhone'a 6 będą czytelne dla istniejących czytników NFC?
tricknology
-2

Myślę, że minie trochę czasu, zanim zobaczymy dostęp do NFC jako czystą stronę bezpieczeństwa, na przykład możliwość przejścia obok kogoś, kto go ominie i sprawi, że telefon zapisze dane karty lub po prostu pomachaj telefonem nad czyimś portfelem, który zostawili na biurku.

Myślę, że pierwszym krokiem dla Apple jest rozmowa z bankami i znalezienie więcej sposobów zabezpieczania kart i NFC, zanim będzie to dozwolone

Adrian Sluyters
źródło