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

时间:2014-09-09 20:58:46

标签: ios iphone nfc ios8 rfid

现在Apple刚宣布iPhone 6将配备NFC芯片,有谁知道iOS 8是否能够为iPhone 6设备读取/检测RFID标签?有人可以分享任何细节吗?

7 个答案:

答案 0 :(得分:167)

iPhone6 / 6s / 6 +并非设计用于读取被动NFC标签(又称发现模式)。关于这个话题有很多错误信息,所以我想为开发人员提供一些有形的信息。缺乏NFC标签读取支持不是因为软件而是因为硬件。要了解原因,您需要了解NFC的工作原理。 NFC通过负载调制工作。这意味着询问器(PCD)发射载波磁场,激励被动目标(PICC)。利用该载波场产生的电势,目标然后能够解调来自询问器的数据并通过在该同一场的顶部调制数据来进行响应。这里的关键是目标永远不会创建自己的字段。

如果您查看iPhone6拆解和零件清单,您会看到一个非常小的NFC环形天线的存在以及AS3923 booster IC的使用。此设计旨在custom microSD or SIM cards使旧手机能够付款。这是一种应用类型,其中移动电话向高功率非接触式POS终端提供卡仿真凭证。 POS终端充当阅读器,在AS3923芯片的帮助下激活iPhone6。 AS3923框图清楚地显示了RX和TX调制如何从读取器设备呈现的信号中提升。换句话说,iPhone6并不是为了提供一个领域,只是为了对一个领域做出反应。这就是为什么它的设计仅适用于NFC卡仿真,也许是Peer-2-Peer,但绝对不是标签Discovery。

AS3923 booster IC

使用HW accessories使用iPhone6实现标记发现有一些替代方法。我将讨论这些集成以及开发人员如何在this blog post中构建解决方案。我们的低功耗读卡器设计为移动设备提供了一些有趣的机会,很少有开发人员在考

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

更新:This rumor,如果属实,将为iPhone提供实际支持NFC标签发现模式的可能性。全玻璃设计不会像当前iPhone的金属背面那样干扰NFC天线。我们尝试了这种设计方法 - 虽然用更便宜的材料 - 在我们的一些定制读卡器设计上取得了成功,因此期待这种改进。

更新:iOS11宣布支持iPhone7 / 7 +的“NFC阅读器模式”。 Details here。 API仅支持在应用程序位于前台(无背景检测)时读取NDEF消息(无ISO7816 APDU)。 2017年秋季即将发布...查看WWDC主题演讲截图:

enter image description here

答案 1 :(得分:43)

从挖掘到截至9月9日下午3:30的iOS 8文档,没有提到开发人员访问NFC控制器以执行任何NFC操作;其中包括阅读标签,书写标签,配对,付款,标签模拟......鉴于其具有恩智浦控制器,硬件具有执行这些功能的能力。他们确实提到了第三方应用程序,允许酒店客人用NFC打开他们的房间门。这是NFC的经典使用案例,并提供了一些迹象表明NFC控制器将在某些时候向开发人员开放。请记住,手表不应该在2015年第一季度发布。所以现在我说它已经关闭但很快就会开放。考虑到美国普通消费者的非接触性支付的“新颖性”和最近的安全漏洞,苹果希望暂时关闭这一点并不奇怪。

披露:我是GoToTags的首席执行官,这是一家对苹果公司有明显既得利益的NFC公司,向开发商开放NFC。

---更正&更新---

酒店应用实际上使用的是蓝牙,而不是NFC。 NFC仍然经常用于门解锁,而不是在这个例子中。如果手表具有开放的NFC控制器,则可以使用NFC。

我知道Apple已经意识到这一切,并正在与他们的顶级开发者和利益相关者进行讨论。由于缺乏对阅读标签的支持,已经出现了大量的负面推动。正如过去的情况一样,我预计Apple最终会向开发人员开放非支付相关功能(阅读标签,配对)。我认为Apple不会允许其他钱包。文件共享也可能留给AirDrop。

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

我不断被要求提供有关此主题的更新,通常是人们引用此帖子。随着Apple发布iPhone SE,许多人再次问为什么Apple还没有支持标签阅读。总而言之,Apple现在比其他NFC用例更专注于Apple Pay。 Apple可以从Apple Pay赚到很多钱,并且从NFC的其他用途中赚得更少。当Apple认为消费者对NFC和Apple Pay的信任和安全性不会使Apple Pay面临风险时,它可能会开启NFC标签阅读。更多信息here

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

希腊的开发人员已经攻击iPhone 6s,让它通过NFC私有框架读取NFC标签; more info & video。虽然这不是一个长期的解决方案,但它提供了一些突出问题的指导:iPhone的NFC控制器是否有足够的功率为NFC标签供电?看起来答案是。从最初的测试范围是几厘米,这不是太糟糕。它也可能是可调的功率;目前正在调查此事。这意味着重要的意义。如果老式手机确实有足够的RF功率用于标签读/写,那么当Apple打开SDK时,这意味着将有100M的iPhone可以读取NFC标签,而只有新的iPhone可以。

答案 2 :(得分:5)

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

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

答案 3 :(得分:2)

目前,Apple已经向开发者开放了对嵌入式NFC芯片的任何访问权限,正如许多文章所建议的那样:

列表还在继续。主要原因似乎(就像过去添加到iPhone上的其他硬件功能一样)Apple希望在为开发人员发布任何API之前确保此类技术的安全性,让他们做任何他们想做的事情。因此,首先,他们将仅在内部使用它来满足他们的需求(例如在发布时的Apple Pay)。

  

“目前,没有任何对NFC控制器的开放访问,”   RapidNFC表示,NFC标签提供商。 “目前还没有NFC   iOS 8 GM SDK中的API“。

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

答案 4 :(得分:2)

iOS 11中添加了读取NFC标签的功能,仅支持iPhone 7和7 +

作为试驾我做了repo

首先:我们需要启动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)

这是我的参考Apple docs

答案 5 :(得分:1)

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

IMO这是一个短视的举动,不允许这种可能性,但实际上是Apple Pay中的钱,不一定是允许开发人员访问这些功能 - 我们之前已经通过网络共享,蓝牙SPP和减少了对某些功能的访问。

......但是,自第一次公告以来,它已经过了大约5个小时。

答案 6 :(得分:-2)

我认为在我们看到NFC作为其纯粹的安全方面之前的某个时候,例如能够走过某人刷过它们和&让您的手机获得卡片详细信息,或者只是将手机放在他们留在桌面上的某人的钱包上。

我认为,第一步是让Apple与银行交谈并找到更多保护卡和NFC的方法,然后再允许这样做