使用iPhone 6 / iOS 8读取NFC标签


96

现在,苹果刚刚宣布iPhone 6将配备NFC芯片,有人知道iOS 8是否将为iPhone 6设备启用读取/检测RFID标签的功能吗?有人有任何细节要分享吗?

Answers:


169

iPhone6 / 6s / 6 +不能读取无源NFC标签(也称为发现模式)。关于此主题的信息有很多,所以我想提供一些切实的信息供开发人员考虑。缺少NFC标签读取支持不是由于软件,而是由于硬件。要了解原因,您需要了解NFC的工作原理。NFC通过负载调制方式工作。这意味着询问器(PCD)发射出一个载波磁场,该磁场激励无源目标(PICC)。利用此载波场产生的电势,目标设备便可以解调来自询问器的数据,并通过在同一场上方调制数据来做出响应。这里的关键是目标永远不会创建自己的字段。

如果您查看iPhone6的拆解和零件清单,您会发现存在非常小的NFC环形天线以及AS3923升压器IC的使用。此设计旨在用于自定义microSD或SIM卡使旧手机可以付款。这是移动电话向高功率非接触式POS终端提供卡模拟凭据的应用程序的类型。POS终端充当读取器,借助AS3923芯片为iPhone6供电。AS3923框图清楚地显示了如何通过读取器设备提供的信号增强RX和TX调制。换句话说,iPhone6并不是要提供一个领域,而只是对一个领域做出反应。这就是为什么它的设计仅用于NFC卡仿真以及Peer-2-Peer,但绝对不用于Discovery的原因。

AS3923升压器IC

使用HW配件通过iPhone6实现标签发现有多种选择。在这篇博客文章中,我将讨论这些集成以及开发人员如何设计解决方案。我们的低功耗阅读器设计为移动互动提供了有趣的机会,而很少有开发人员在考虑这些机会。

披露:我是TechStars公司Flomio,Inc.的创始人,该公司为从访问控制到付款的应用程序提供感应ID硬件,软件和服务。

更新:如果此传言属实,则将为iPhone实际上支持NFC标签发现模式提供可能性。全玻璃设计不会像当前iPhone的金属背面那样干扰NFC天线。我们已经在某些定制阅读器设计中尝试了这种设计方法(尽管使用了更便宜的材料),并获得了成功,因此我们期待这种改进。

更新:iOS11宣布支持iPhone7 / 7 +的“ NFC阅读器模式”。详细信息在这里。API仅支持在应用程序处于前台(无后台检测)时读取NDEF消息(无ISO7816 APDU)。由于将于2017年秋季发布...请查看WWDC主题演讲的屏幕截图:

在此处输入图片说明


2
我不是硬件专家,但iPhone拆解可能没有显示所有内容吗?这是最终分析吗?无法读取无源NFC标签?
Salaryman

3
我认为我设计了一些NFC读取器,并基于拆解中看到的内容,研究了布局并观察了iPhone6在NFC上的表现。我本人并未亲自拆解iPhone6,因此在周围有痕迹绕过AS3923的地方绕着空气绕线电感器并不是不可能。我的主要观点是,这将是非常规的,并且最多只能在读取标签方面表现不佳。
grundyoso 2014年

@grundyoso如果只有您的公司可以提供一个不错的SDK,那就太好了。Flomio SDK是否有任何更新?还是仅限于花费超过$ 1200的俱乐部吗?
Dan1one 2015年

@ Dan1one,我们仍在努力。我们的Beta版用户发现了一些仍在修复的错误,因此$ 1200 +的限制实际上只是为了使我们更加专注。一旦对质量感到满意,我们将向所有客户发送Flomio SDK。包括一个Cordova插件,它将使Web解决方案的构建更加容易。
grundyoso 2015年

1
@Randomblue我回顾了6S推出时iFixIt的拆卸情况,并保留了增强芯片和小天线设计。我们的硬件附件已经很好地满足了这一需求,并且对Flomio SDK进行了频繁更新以易于集成。考虑与TrackHack一起加入我们,与其他RFID供应商的出色硬件一起与他们一起玩耍。
grundyoso 2015年

43

从9月9日下午3:30挖掘的iOS 8文档开始,没有提到开发人员可以访问NFC控制器以执行任何NFC操作。其中包括读取标签,写入标签,配对,付款,标签仿真...借助NXP控制器,硬件具有执行这些功能的能力。他们确实提到了手表的第三方应用程序,该应用程序允许酒店住客使用NFC打开房间的门。这是NFC的经典用例,并表明NFC控制器将在某个时候向开发人员开放。请记住,该表不应该在2015年第一季度之前发布。因此,我现在说它已经关闭,但很快就会打开。鉴于“新”

披露:我是NFC公司GoToTags的首席执行官,该公司对苹果向开发人员开放NFC具有明显的既得利益。

-更正与更新-

酒店应用实际上使用蓝牙,而不是NFC。NFC仍然经常用于开门,仅在此示例中不使用。如果手表的NFC控制器打开,则可以使用NFC。

我确实知道Apple意识到了所有这一切,并正在与其顶尖的开发人员和利益相关者进行讨论。由于缺乏对阅读标签的支持,已经出现了巨大的负面影响。像往常一样,我希望苹果最终向开发人员开放与非支付相关的功能(读取标签,配对)。我认为苹果不会允许其他钱包使用。文件共享也可能留给AirDrop。

--- 2016年3月23日更新---

经常有人要求我提供有关此主题的更新。随着Apple发布iPhone SE,许多人再次询问为什么Apple还不支持标签读取。总而言之,Apple目前比NFC的其他用例更关注成功的Apple Pay。苹果可以通过Apple Pay赚很多钱,而从NFC的其他用途中赚的钱更少。当苹果公司认为消费者对NFC和Apple Pay的信任和安全性不会给Apple Pay带来风险时,他们可能会开放NFC标签阅读功能。此处有更多信息。

--- 2017年5月24日更新---

希腊的一名开发人员入侵了iPhone 6s,使其能够通过NFC专用框架读取NFC标签。更多信息和视频。尽管这不是一个长期解决方案,但它为一个悬而未决的问题提供了一些指导:iPhone的NFC控制器中是否有足够的功率为NFC标签供电?看起来答案是肯定的。从最初的测试来看,范围是几厘米,还算不错。功率也可能是可调的。目前正在对此进行调查。这的意义是重大的。如果较旧型号的手机确实具有足够的射频功率用于标签读取/写入,那么当苹果确实打开SDK时,这意味着将有100M的iPhone可以读取NFC标签,而只有新iPhone可以。


这是PassKit(iOS SDK的付款部分)的链接。developer.apple.com/library/prerelease/ios/documentation/...
craig.tadlock

在阅读我能找到的Apple Pay文档时,没有提到NFC。这就是我现在可以找到的全部。我还不相信iPhone 6甚至会配备NFC。我确实在新闻文章中看到过它,但是记者可能会混淆用于NFC付款的付款系统API。您是否可以共享指向Apple的任何说明iPhone 6将具有NFC硬件的文档的链接?
strwils 2014年

7
你看饲料了吗?当他们谈论Apple Pay时,有大量的“ NFC”文字。去检查一下它的TechCrunch记录。
craig.tadlock,2014年

不,我没有。谢谢,我会检查一下。
strwils 2014年

2
@tricknology TouchID距iPhone 5S才刚问世,而iPhone 5S几乎是在一年前。该API已于3个月前发布给开发人员。
Tim Bodeit 2014年

5

目前,没有对NFC控制器的任何开放访问。当前,iOS 8 GM SDK中没有NFC API-这表明NFC功能在发布时仅限于Apple Pay。这是我们的理解。

显然,iPhone 6内的NXP芯片可能会做更多的事情,因此这并不意味着就不会在发布时或在不久的将来添加其他功能(配对,标签扫描/编码)。


2

目前,苹果尚未像许多此类文章所建议的那样,向开发人员开放对嵌入式NFC芯片的任何访问权限:

清单继续。主要原因(似乎与过去iPhone中添加的许多其他其他硬件功能一样)是Apple希望在为开发人员发布任何API以便开发人员做他们想做的事情之前确保此类技术的安全性。因此,起初,他们只会在内部将其用于自己的需求(例如启动时的Apple Pay)。

NFC标签提供商RapidNFC说:“目前,尚无对NFC控制器的开放访问。” “ iOS 8 GM SDK当前没有NFC API”。

但是最终,我认为我们都可以同意他们将开发这样的API,只是时间问题。


7
您知道自己引用了使用此问题作为来源的文章吗?到处
都是。。。– craig.tadlock

当时还不知道技术记者使用SO作为来源,但我想这很有道理。无论如何,我只想引用消息来源,因为最初的问题是关于我们开发人员使用上一部iPhone内嵌的NFC芯片发布代码的能力。
m4rtin 2014年

@ m4rtin,“但最终,我认为我们都可以同意他们将开发此类API,这只是时间问题。” 不,这是金钱问题!全面的蓝牙支持花了好几年的时间,他们不想听到有关闪存的话题,而在NFC中,他们只是花些力气。苹果只有整合技术才能赢钱。他们绝对不在乎技术人员可以为用户提供的服务!
fralbo

2

可读取NFC标签的功能已添加到iOS 11中,仅支持iPhone 7和7 plus

作为试驾,我做了这个回购

第一:我们需要启动NFCNDEFReaderSession类

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

然后,我们需要通过以下方式开始会话:

session?.begin()

并在完成后:

session?.invalidate()

委托(自己应实现)基本上具有两个功能:

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

这是我的参考苹果文档


我也在尝试测试Core NFC。你有工作吗?我意识到这只是第一天:)
Blisterpeanuts

@Blisterpeanuts我更新了我的答案,但由于缺少CoreNFC中的x86_64体系结构而无法完全正常工作,但我会尽快修复
zombie

参见stackoverflow.com/questions/44380305/…我们中有些人已经使它工作了。
Blisterpeanuts

1

当前唯一可用的信息是Apple Pay将在ios8中可用,但这并不能说明是否可以检测到/读取RFID标签或NFC标签。

IMO不允许这种可能性是短视,但实际上这笔钱来自Apple Pay,不一定是允许开发人员访问这些功能-我们在绑定,蓝牙SPP和减少某些功能的访问权限之前就已经看到了。

...但是话又说回来,自第一次宣布以来已经过去了5个小时。


2
现有NFC读取器可以读取iPhone 6的NFC数据吗?
tricknology 2014年

-2

我认为这是某个时候,我们才能看到对NFC的访问是其纯粹的安全性,例如,能够走过某人,掠过它们,并让您的手机查看卡的详细信息,或者只是挥动您的手机在他们留在桌子上的某人的钱包上。

我认为第一步是苹果与银行进行对话,并在允许之前找到更多保护卡和NFC的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.