Antworten:
Das iPhone6 / 6s / 6 + ist NICHT zum Lesen passiver NFC-Tags (auch bekannt als Discovery-Modus) vorgesehen. Es gibt viele Fehlinformationen zu diesem Thema, daher habe ich mir überlegt, einige konkrete Informationen bereitzustellen, die Entwickler berücksichtigen sollten. Der Mangel an Unterstützung für das Lesen von NFC-Tags liegt nicht an der Software, sondern an der Hardware. Um zu verstehen, warum, müssen Sie verstehen, wie NFC funktioniert. NFC arbeitet mit Lademodulation. Das bedeutet, dass der Interrogator (PCD) ein Trägermagnetfeld aussendet, das das passive Ziel (PICC) erregt. Mit dem von diesem Trägerfeld erzeugten Potential ist das Ziel dann in der Lage, vom Abfrager kommende Daten zu demodulieren und zu antworten, indem Daten über genau dieses Feld moduliert werden. Der Schlüssel hier ist, dass das Ziel niemals ein eigenes Feld erstellt.
Wenn Sie sich die iPhone6-Abriss- und Teileliste ansehen, werden Sie das Vorhandensein einer sehr kleinen NFC- Rahmenantenne sowie die Verwendung des AS3923-Booster-IC sehen . Dieses Design war für benutzerdefinierte microSD- oder SIM-Karten gedachtum alten Mobiltelefonen das Bezahlen zu ermöglichen. Dies ist die Art von Anwendung, bei der das Mobiltelefon einem kontaktlosen POS-Terminal mit hoher Leistung einen kartenemulierten Berechtigungsnachweis vorlegt. Das POS-Terminal fungiert als Lesegerät und versorgt das iPhone6 mithilfe des AS3923-Chips mit Strom. Das AS3923-Blockdiagramm zeigt deutlich, wie die RX- und TX-Modulation durch ein von einem Lesegerät ausgegebenes Signal verstärkt wird. Mit anderen Worten, das iPhone6 soll kein Feld bereitstellen, sondern nur auf eines reagieren. Aus diesem Grund ist das Design nur für die NFC-Kartenemulation und möglicherweise für Peer-2-Peer gedacht, aber definitiv nicht für die Tag-Erkennung.
Es gibt einige Alternativen zum Erreichen der Tag-Erkennung mit einem iPhone6 mithilfe von HW-Zubehör . Ich spreche in diesem Blogbeitrag über diese Integrationen und wie Entwickler Lösungen entwickeln können . Unsere Low-Power-Reader-Designs eröffnen interessante Möglichkeiten für mobiles Engagement, über die nur wenige Entwickler nachdenken.
Offenlegung: Ich bin der Gründer von Flomio, Inc. , einem TechStars-Unternehmen, das Hardware, Software und Services für Proximity-IDs für Anwendungen bereitstellt, die von der Zugriffskontrolle bis hin zu Zahlungen reichen.
Update: Wenn dieses Gerücht wahr ist, würde es dem iPhone die Möglichkeit eröffnen, den NFC-Tag-Erkennungsmodus praktisch zu unterstützen. Ein Ganzglas-Design würde die NFC-Antenne nicht beeinträchtigen, ebenso wie die Metallrückseite des aktuellen iPhone. Wir haben diesen Designansatz - wenn auch mit billigeren Materialien - bei einigen unserer kundenspezifischen Leserkonstruktionen mit Erfolg versucht und freuen uns auf diese Verbesserung.
Update: iOS11 hat die Unterstützung des "NFC-Lesemodus" für iPhone 7/7 + angekündigt. Details hier . Die API unterstützt nur das Lesen von NDEF-Nachrichten (keine ISO7816-APDUs), während sich eine App im Vordergrund befindet (keine Hintergrunderkennung). Fällig im Herbst 2017 ... siehe Screenshot der WWDC-Keynote:
Beim Durchsuchen der iOS 8-Dokumente, die ab dem 9. September um 15.30 Uhr verfügbar sind, wird der Entwicklerzugriff auf den NFC-Controller zur Ausführung von NFC-Vorgängen nicht erwähnt. Dazu gehören das Lesen von Tags, das Schreiben von Tags, das Pairing, Zahlungen, die Tag-Emulation ... Da es sich um einen NXP-Controller handelt, kann die Hardware diese Funktionen ausführen. Sie erwähnten eine Drittanbieter-App für die Uhr, mit der ein Hotelgast seine Zimmertür mit NFC öffnen konnte. Dies ist ein klassischer Anwendungsfall für NFC und gibt einen Hinweis darauf, dass der NFC-Controller irgendwann für Entwickler offen sein wird. Denken Sie daran, dass die Uhr erst im ersten Quartal 2015 veröffentlicht werden soll. Daher würde ich sagen, dass sie geschlossen ist, aber bald geöffnet sein wird. Angesichts der "Neuheit"
Offenlegung: Ich bin der CEO von GoToTags , einem NFC-Unternehmen mit offensichtlichem Interesse daran, dass Apple NFC für Entwickler öffnet.
--- Korrektur & Update ---
Die Hotel-App verwendet tatsächlich Bluetooth, nicht NFC. NFC wird immer noch häufig zum Entriegeln von Türen verwendet, nur nicht in diesem einen Beispiel. NFC kann verwendet werden, wenn die Uhr einen offenen NFC-Controller hat.
Ich weiß, dass Apple sich all dessen bewusst ist und dies mit seinen Top-Entwicklern und Stakeholdern diskutiert. Der Mangel an Unterstützung für das Lesen von Tags wurde bereits massiv negativ zurückgedrängt. Wie so oft in der Vergangenheit erwarte ich, dass Apple dies Entwicklern irgendwann für nicht zahlungsbezogene Funktionen (Lesen von Tags, Pairing) öffnet. Ich glaube nicht, dass Apple jemals andere Geldbörsen zulassen wird. Die Dateifreigabe wird wahrscheinlich auch AirDrop überlassen.
--- Update am 23. März 2016 ---
Ich werde ständig nach Updates zu diesem Thema gefragt, oft mit Leuten, die auf diesen Beitrag verweisen. Mit der Veröffentlichung des iPhone SE durch Apple fragen sich viele erneut, warum Apple das Lesen von Tags noch nicht unterstützt hat. Zusammenfassend lässt sich sagen, dass Apple sich mehr auf den Erfolg von Apple Pay konzentriert als auf die anderen Anwendungsfälle für NFC. Apple könnte mit Apple Pay viel Geld verdienen und hat mit den anderen Anwendungen für NFC weniger zu verdienen. Apple wird wahrscheinlich das Lesen von NFC-Tags eröffnen, wenn das Vertrauen und die Sicherheit der Verbraucher in NFC und Apple Pay so groß sind, dass Apple Pay dadurch nicht gefährdet wird. Weitere Informationen hier .
--- Update am 24. Mai 2017 ---
Ein Entwickler in Griechenland hat das iPhone 6s gehackt, damit es NFC-Tags über die privaten NFC-Frameworks lesen kann. Weitere Infos & Video . Dies ist zwar keine langfristige Lösung, bietet jedoch einige Hinweise zu einer noch offenen Frage: Ist im NFC-Controller des iPhones genügend Strom vorhanden, um ein NFC-Tag mit Strom zu versorgen? Sieht aus wie die Antwort ist ja . Nach dem ersten Test beträgt die Reichweite einige cm, was nicht schlecht ist. Es könnte auch sein, dass die Leistung abstimmbar ist; Dies wird derzeit untersucht. Die Auswirkungen sind erheblich. Wenn die älteren Telefonmodelle über genügend HF-Leistung zum Lesen / Schreiben von Tags verfügen, bedeutet dies, dass beim Öffnen des SDK durch Apple 100 Millionen iPhones vorhanden sind, die NFC-Tags lesen können, im Gegensatz zu den Fällen, in denen nur die neuen iPhones dies können.
Derzeit gibt es keinen offenen Zugang zum NFC-Controller. Das iOS 8 GM SDK enthält derzeit keine NFC-APIs. Dies weist darauf hin, dass die NFC-Funktion beim Start auf Apple Pay beschränkt ist. Das ist unser Verständnis.
Es ist klar, dass der NXP-Chip im iPhone 6 wahrscheinlich mehr kann, was nicht bedeutet, dass zusätzliche Funktionen (Pairing, Tag-Scannen / Codierung) nicht zur Veröffentlichung oder in naher Zukunft hinzugefügt werden.
Im Moment hat Apple nicht jeden Zugriff auf den integrierten NFC - Chip für Entwickler geöffnet , wie viele Artikel wie dies hier vorgeschlagen:
Die Liste geht weiter. Der Hauptgrund scheint (wie viele andere Hardwarefunktionen, die dem iPhone in der Vergangenheit hinzugefügt wurden) zu sein, dass Apple die Sicherheit dieser Technologie gewährleisten möchte, bevor Entwickler eine API veröffentlichen, mit der sie tun können, was sie wollen. Daher werden sie es zunächst nur für ihre Bedürfnisse intern verwenden (z. B. Apple Pay zum Startzeitpunkt).
"Im Moment gibt es keinen offenen Zugang zum NFC-Controller", sagte RapidNFC, ein Anbieter von NFC-Tags. "Das iOS 8 GM SDK enthält derzeit keine NFC-APIs."
Aber irgendwann können wir uns alle darauf einigen, dass sie eine solche API entwickeln werden. Es ist nur eine Frage der Zeit.
Die Möglichkeit, ein NFC-Tag zu lesen, wurde iOS 11 hinzugefügt, das nur iPhone 7 und 7 plus unterstützt
Als Probefahrt habe ich dieses Repo gemacht
Erstens: Wir müssen die NFCNDEFReaderSession-Klasse initiieren
var session: NFCNDEFReaderSession?
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
Dann müssen wir die Sitzung beginnen mit:
session?.begin()
und wenn fertig:
session?.invalidate()
Der Delegat (den er selbst implementieren sollte) hat grundsätzlich zwei Funktionen:
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)
Hier ist meine Referenz Apple-Dokumente
Die einzige derzeit verfügbare Information ist, dass Apple Pay in ios8 verfügbar sein wird, aber dies gibt keinen Aufschluss darüber, ob RFID-Tags oder vielmehr NFC-Tags speziell erkannt / gelesen werden können.
IMO wäre es ein kurzsichtiger Schritt, diese Möglichkeit nicht zuzulassen, aber das Geld liegt in Apple Pay, nicht unbedingt darin, Entwicklern den Zugriff auf diese Funktionen zu ermöglichen - wir haben es bereits mit Tethering, Bluetooth SPP und eingeschränktem Zugriff auf bestimmte Funktionen gesehen .
... aber andererseits sind seit der ersten Ankündigung ungefähr 5 Stunden vergangen.
Ich denke, es wird einige Zeit dauern, bis wir den Zugang zum NFC als die reine Sicherheitsseite davon sehen, wie zum Beispiel in der Lage zu sein, an jemandem vorbei zu gehen, der an ihnen vorbeigeht, und Ihr Telefon dazu zu bringen, die Kartendetails zu zappen oder einfach Ihr Telefon zu winken über jemandes Brieftasche, die sie auf dem Schreibtisch liegen ließen.
Ich denke, der erste Schritt besteht darin, dass Apple mit Banken spricht und mehr Möglichkeiten zur Sicherung von Karten und NFC findet, bevor dies zulässig ist