Risposte:
Gli iPhone6 / 6s / 6 + NON sono progettati per leggere tag NFC passivi (ovvero modalità Discovery). C'è molta disinformazione su questo argomento, quindi ho pensato di fornire alcune informazioni tangibili da prendere in considerazione per gli sviluppatori. La mancanza di supporto per la lettura dei tag NFC non è dovuta al software ma all'hardware. Per capire perché, è necessario capire come funziona NFC. NFC funziona tramite Load Modulation. Ciò significa che l'interrogatore (PCD) emette un campo magnetico portante che eccita il bersaglio passivo (PICC). Con il potenziale generato da questo campo portante, il bersaglio è quindi in grado di demodulare i dati provenienti dall'interrogatore e rispondere modulando i dati sopra questo stesso campo. La chiave qui è che l'obiettivo non crea mai un campo proprio.
Se guardi lo smontaggio dell'iPhone6 e l'elenco delle parti vedrai la presenza di un'antenna NFC a telaio molto piccola, nonché l'uso dell'IC booster AS3923 . Questo design era destinato a schede microSD o SIM personalizzateper consentire ai vecchi telefoni cellulari di effettuare pagamenti. Questo è il tipo di applicazione in cui il telefono cellulare presenta una credenziale emulata con carta a un terminale POS contactless ad alta potenza. Il terminale POS funge da lettore, energizzando l'iPhone6 con l'aiuto del chip AS3923. Lo schema a blocchi dell'AS3923 mostra chiaramente come la modulazione RX e TX viene potenziata da un segnale presentato da un dispositivo di lettura. In altre parole, l'iPhone6 non è pensato per fornire un campo, ma solo per reagire a uno. Ecco perché il suo design è pensato solo per l'emulazione di schede NFC e forse per Peer-2-Peer, ma sicuramente non per il tag Discovery.
Ci sono alcune alternative per ottenere tag Discovery con un iPhone6 utilizzando accessori HW . Parlo di queste integrazioni e di come gli sviluppatori possono progettare soluzioni in questo post del blog . I nostri progetti di lettori a bassa potenza aprono interessanti opportunità di coinvolgimento mobile a cui pochi sviluppatori stanno pensando.
Divulgazione: sono il fondatore di Flomio, Inc. , una società TechStars che fornisce hardware, software e servizi di identificazione di prossimità per applicazioni che vanno dal controllo degli accessi ai pagamenti.
Aggiornamento: questa voce , se vera, aprirebbe la possibilità per l'iPhone di supportare praticamente la modalità Discovery tag NFC. Un design tutto in vetro non interferirebbe con l'antenna NFC come fa il retro in metallo dell'attuale iPhone. Abbiamo tentato questo approccio di progettazione, anche se con materiali più economici, su alcuni dei nostri progetti di lettori personalizzati con successo, quindi non vediamo l'ora di questo miglioramento.
Aggiornamento: iOS11 ha annunciato il supporto per la "modalità lettore NFC" per iPhone7 / 7 +. Dettagli qui . L'API supporta solo la lettura dei messaggi NDEF (non APDU ISO7816) mentre un'app è in primo piano (nessun rilevamento in background). In uscita in autunno, 2017 ... controlla lo screenshot dal keynote del WWDC:
Dall'analisi dei documenti iOS 8 disponibili a partire dal 9 settembre alle 15:30, non si fa menzione dell'accesso degli sviluppatori al controller NFC per eseguire operazioni NFC; che include la lettura di tag, la scrittura di tag, l'abbinamento, i pagamenti, l'emulazione di tag ... Dato che è un controller NXP, l'hardware ha la capacità di eseguire queste funzionalità. Hanno menzionato un'app di terze parti per l'orologio che consentiva a un ospite dell'hotel di aprire la porta della propria camera con NFC. Questo è un classico caso d'uso per NFC e fornisce alcune indicazioni che il controller NFC sarà aperto agli sviluppatori a un certo punto. Ricorda, l'orologio non dovrebbe essere rilasciato fino al primo trimestre del 2015. Quindi per ora direi che è chiuso ma sarà presto aperto. Data la "novità"
Divulgazione: sono il CEO di GoToTags , una società NFC con evidente interesse acquisito per Apple che apre NFC agli sviluppatori.
--- Correzione e aggiornamento ---
L'app dell'hotel utilizza effettivamente il Bluetooth, non l'NFC. NFC è ancora spesso utilizzato per sbloccare le porte, ma non in questo esempio. È possibile utilizzare NFC se l'orologio ha un controller NFC aperto.
So che Apple è a conoscenza di tutto questo e ne sta discutendo con i suoi migliori sviluppatori e stakeholder. C'è già stato un enorme respingimento negativo sulla mancanza di supporto per la lettura dei tag. Come spesso accade in passato, mi aspetto che Apple alla fine lo apra agli sviluppatori per funzionalità relative al mancato pagamento (lettura di tag, associazione). Tuttavia, non credo che Apple consentirà mai altri portafogli. Probabilmente anche la condivisione dei file verrà lasciata ad AirDrop.
--- Aggiornamento il 23 marzo 2016 ---
Mi vengono continuamente richiesti aggiornamenti su questo argomento, spesso con persone che fanno riferimento a questo post. Con il rilascio dell'iPhone SE da parte di Apple, molti si chiedono nuovamente perché Apple non abbia ancora supportato la lettura dei tag. In sintesi, Apple è più concentrata sul successo di Apple Pay rispetto agli altri casi d'uso per NFC per ora. Apple potrebbe guadagnare molti soldi da Apple Pay e ha meno da guadagnare dagli altri usi per NFC. Apple probabilmente aprirà la lettura dei tag NFC quando sentirà che la fiducia e la sicurezza dei consumatori con NFC e Apple Pay è tale da non mettere a rischio Apple Pay. Ulteriori informazioni qui .
--- Aggiornamento il 24 maggio 2017 ---
Uno sviluppatore in Grecia ha violato l'iPhone 6s per convincerlo a leggere i tag NFC tramite i framework privati NFC; maggiori informazioni e video . Sebbene questa non sia una soluzione a lungo termine, fornisce alcune indicazioni su alcune domande in sospeso: c'è abbastanza potenza nel controller NFC dell'iPhone per alimentare un tag NFC? Sembra che la risposta sia sì . Dal test iniziale la distanza è di pochi cm, il che non è male. Potrebbe anche essere che la potenza sia regolabile; questo è oggetto di indagine in questo momento. Le implicazioni di ciò sono significative. Se i modelli di telefoni più vecchi hanno abbastanza potenza RF per la lettura / scrittura di tag, quando Apple aprirà l'SDK significa che ci saranno 100 milioni di iPhone in grado di leggere i tag NFC, rispetto al caso in cui solo i nuovi iPhone potrebbero.
Al momento, non c'è alcun accesso aperto al controller NFC. Al momento non ci sono API NFC nell'SDK GM di iOS 8, il che indicherebbe che la funzionalità NFC sarà limitata ad Apple Pay al momento del lancio. Questa è la nostra comprensione.
Chiaramente, è probabile che il chip NXP all'interno dell'iPhone 6 sia in grado di fare di più, quindi questo non significa che non verranno aggiunte funzionalità aggiuntive (accoppiamento, scansione / codifica dei tag) per il rilascio o nel prossimo futuro.
Al momento, Apple non ha aperto agli sviluppatori alcun accesso al chip NFC incorporato come suggerito da molti articoli come questi:
L'elenco potrebbe continuare. Il motivo principale sembra (come molte altre funzionalità hardware aggiunte all'iPhone in passato) che Apple voglia garantire la sicurezza di tale tecnologia prima di rilasciare qualsiasi API per gli sviluppatori per consentire loro di fare quello che vogliono. Quindi all'inizio lo useranno internamente solo per le loro esigenze (come Apple Pay al momento del lancio).
"Al momento, non c'è alcun accesso aperto al controller NFC", ha detto RapidNFC, un fornitore di tag NFC. "Al momento non ci sono API NFC nell'SDK GM di iOS 8".
Ma alla fine, penso che possiamo essere tutti d'accordo sul fatto che svilupperanno tale API, è solo questione di tempo.
La possibilità di leggere un tag NFC è stata aggiunta a iOS 11 che supporta solo iPhone 7 e 7 plus
Come test drive ho realizzato questo repo
Primo: dobbiamo avviare la classe NFCNDEFReaderSession
var session: NFCNDEFReaderSession?
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
Quindi dobbiamo iniziare la sessione:
session?.begin()
e al termine:
session?.invalidate()
Il delegato (che dovrebbe essere implementato da sé) ha fondamentalmente due funzioni:
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)
ecco i miei documenti Apple di riferimento
L'unica informazione attualmente disponibile è che Apple Pay sarà disponibile in ios8, ma ciò non fa luce sul fatto che i tag RFID o meglio i tag NFC in particolare possano essere rilevati / letti.
IMO sarebbe una mossa miope non consentire questa possibilità, ma in realtà i soldi sono in Apple Pay, non necessariamente nel consentire agli sviluppatori di accedere a quelle funzionalità: l'abbiamo visto prima con tethering, Bluetooth SPP e accesso ridotto a determinate funzioni .
... ma poi di nuovo, sono passate circa 5 ore dal primo annuncio.
Penso che ci vorrà del tempo prima di poter vedere l'accesso all'NFC come puro lato di sicurezza, come ad esempio essere in grado di passare accanto a qualcuno sfiorandoli e e portare il telefono a zapare i dettagli della carta o semplicemente Agitare il telefono sul portafoglio di qualcuno che hanno lasciato sulla scrivania.
Penso che il primo passo sia per Apple parlare con le banche e trovare altri modi per proteggere le carte e l'NFC prima che ciò sia consentito