【发布时间】:2014-11-03 09:32:00
【问题描述】:
现在 Apple 刚刚宣布 iPhone 6 将配备 NFC 芯片,有谁知道 iOS 8 是否可以读取/检测 iPhone 6 设备的 RFID 标签?有人对此有任何详细信息可以分享吗?
【问题讨论】:
现在 Apple 刚刚宣布 iPhone 6 将配备 NFC 芯片,有谁知道 iOS 8 是否可以读取/检测 iPhone 6 设备的 RFID 标签?有人对此有任何详细信息可以分享吗?
【问题讨论】:
读取 NFC 标签的功能已添加到仅支持 iPhone 7 和 7 plus 的 iOS 11 中
作为试驾我做了这个repo
首先:我们需要启动NFCNDEFReaderSession类
var session: NFCNDEFReaderSession?
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
那么我们需要通过以下方式开始会话:
session?.begin()
完成后:
session?.invalidate()
委托(self 应该实现)基本上有两个功能:
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)
这是我的参考Apple docs
【讨论】:
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 Card Emulation 和 Peer-2-Peer,但绝对不是标签 Discovery。
有一些替代方法可以使用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 主题演讲的截图:
【讨论】:
从深入研究截至 9 月 9 日下午 3:30 可用的 iOS 8 文档,没有提到开发人员可以访问 NFC 控制器以执行任何 NFC 操作;这包括读取标签、写入标签、配对、支付、标签仿真……鉴于其 NXP 控制器,硬件具有执行这些功能的能力。他们确实提到了这款手表的第 3 方应用程序,该应用程序允许酒店客人使用 NFC 打开他们的房间门。这是 NFC 的一个经典用例,表明 NFC 控制器将在某个时候向开发人员开放。请记住,这款手表要到 2015 年第一季度才会发布。所以现在我会说它已经关闭但很快就会打开。鉴于对美国普通消费者而言非接触式支付的“新事物”以及最近的安全漏洞,Apple 希望将其关闭一段时间也就不足为奇了。
披露:我是GoToTags 的首席执行官,这是一家 NFC 公司,显然对 Apple 向开发者开放 NFC 有既得利益。
---更正和更新---
酒店应用实际上使用的是蓝牙,而不是 NFC。 NFC 仍然经常用于开门,只是在这个例子中没有。如果手表有一个开放的 NFC 控制器,则可以使用 NFC。
我确实知道 Apple 已经意识到这一切,并正在与他们的顶级开发人员和利益相关者进行讨论。由于缺乏对阅读标签的支持,已经出现了巨大的负面影响。与过去的情况一样,我希望 Apple 最终会向开发人员开放这项与非支付相关的功能(阅读标签、配对)。不过,我认为 Apple 永远不会允许使用其他钱包。文件共享也可能留给 AirDrop。
--- 2016 年 3 月 23 日更新 ---
我不断收到有关此主题的更新,通常是有人引用此帖子。随着 Apple 发布 iPhone SE,许多人再次问为什么 Apple 还不支持标签读取。总之,与 NFC 的其他用例相比,Apple 目前更关注 Apple Pay 的成功。苹果可以从 Apple Pay 中赚到很多钱,而从 NFC 的其他用途中赚到的钱更少。当苹果认为消费者对 NFC 和 Apple Pay 的信任和安全性不会使 Apple Pay 面临风险时,他们可能会开放 NFC 标签读取。更多信息here。
--- 2017 年 5 月 24 日更新 ---
希腊的一位开发人员破解了 iPhone 6s,让它通过 NFC 私有框架读取 NFC 标签; more info & video。虽然这不是一个长期的解决方案,但它为一些悬而未决的问题提供了一些指导:iPhone 的 NFC 控制器中是否有足够的电量来为 NFC 标签供电?看起来答案是是的。从最初的测试开始,范围是几厘米,这还不错。也可能是功率可调;目前正在对此进行调查。这一点的意义是重大的。如果旧款手机确实有足够的射频功率来读取/写入标签,那么当 Apple 确实开放 SDK 时,这意味着将有 100Ms 的 iPhone 可以读取 NFC 标签,而只有新 iPhone 可以。
【讨论】:
目前,NFC 控制器没有任何开放访问权限。 iOS 8 GM SDK 中目前没有 NFC API - 这表明 NFC 功能将在发布时仅限于 Apple Pay。这是我们的理解。
显然,iPhone 6 中的 NXP 芯片可能会做得更多,所以这并不意味着在发布或不久的将来不会添加其他功能(配对、标签扫描/编码)。
【讨论】:
我认为,我们还需要一段时间才能将 NFC 的访问视为其纯粹的安全方面,例如能够从某人身边走过,然后让您的手机查看卡的详细信息,或者只是简单地在某人留在桌子上的钱包上挥动您的手机。
我认为 Apple 的第一步是与银行交谈,并在允许之前找到更多保护卡和 NFC 的方法
【讨论】:
目前,Apple没有向开发人员开放任何访问嵌入式 NFC 芯片的权限,如许多文章所建议的那样:
名单还在继续。主要原因似乎(就像过去添加到 iPhone 的许多其他硬件功能一样)苹果希望在发布任何 API 让开发人员做任何他们想做的事情之前确保此类技术的安全性。所以一开始,他们只会在内部使用它来满足他们的需要(例如在发布时使用 Apple Pay)。
“目前,NFC 控制器没有任何开放访问权限,” NFC标签供应商RapidNFC表示。 “目前没有NFC iOS 8 GM SDK 中的 API”。
但最终,我想我们都可以同意他们会开发这样的 API,这只是时间问题。
【讨论】:
目前唯一可用的信息是 Apple Pay 将在 ios8 中可用,但这并不能说明 RFID 标签或者更确切地说是 NFC 标签是否能够被检测/读取。
IMO 不允许这种可能性是一种短视的举动,但真正的钱在于 Apple Pay,而不一定是允许开发人员访问这些功能 - 我们之前已经看到过网络共享、蓝牙 SPP 和访问权限减少的情况到某些功能。
...不过话说回来,距离第一次宣布已经过去了大约 5 个小时。
【讨论】: