【问题标题】:Reading NFC Tags with iPhone 6 / iOS 8使用 iPhone 6 / iOS 8 读取 NFC 标签
【发布时间】:2014-11-03 09:32:00
【问题描述】:

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

【问题讨论】:

    标签: ios iphone nfc ios8 rfid


    【解决方案1】:

    读取 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

    【讨论】:

    • 我也在尝试测试 Core NFC。你有什么工作了吗?我意识到这只是第一天:)
    • @Blisterpeanuts 我更新了我的答案,但由于 CoreNFC 中缺少 x86_64 架构,它不能完全正常工作,但我会尽快修复它
    • stackoverflow.com/questions/44380305/…我们中的一些人已经让它工作了。
    【解决方案2】:

    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 主题演讲的截图:

    【讨论】:

    • 我不是硬件专家,但有没有可能 iPhone 拆解没有显示所有内容?这是最终的分析吗?无法读取被动 NFC 标签?
    • 我设计了几个 NFC 阅读器,根据我从拆解中看到的内容、研究布局以及观察 iPhone6 在 NFC 上的表现,这是我的看法。我自己并没有亲自拆解过 iPhone6,所以不可能有一个空气缠绕电感器隐藏在某个地方,并且有绕过 AS3923 的痕迹。我的主要观点是这将是非常规的,并且充其量在阅读标签方面表现不佳。
    • @grundyoso 如果您的公司可以将一个像样的 SDK 组合在一起,那就太棒了。 Flomio SDK 有什么更新吗?仍然仅限于消费 1200 美元以上的俱乐部?
    • @Dan1one,我们仍在努力。我们的测试版用户发现了我们仍在修复的错误,因此 1200 美元以上的限制实际上只是为了让我们集中精力。一旦我们对质量感到满意,我们将向所有客户发送 Flomio SDK。包括一个 Cordova 插件,它将使 Web 解决方案更容易构建。
    • @Randomblue 我查看了 iFixIt 的拆解,当时 6S 出来了,但仍保留了增强芯片和小型天线设计。我们的HW accessories 正在成熟地满足这一需求,并经常更新 Flomio SDK 以便于集成。考虑加入我们TrackHack,与其他 RFID 供应商的出色硬件一起玩。
    【解决方案3】:

    从深入研究截至 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 可以。

    【讨论】:

    • 这里是 PassKit 的链接,它是 iOS SDK 的支付部分。 developer.apple.com/library/prerelease/ios/documentation/…
    • 在阅读我能找到的documentation for Apple Pay 时,没有提到NFC。这就是我现在能找到的。我还不相信 iPhone 6 甚至会有 NFC。我确实在一篇新闻文章中看到了它,但记者可能会混淆用于 NFC 支付的支付系统 API。您能否分享一个指向 Apple 说明 iPhone 6 将配备 NFC 硬件的任何文档的链接?
    • 你看了吗?当他们谈论 Apple Pay 时,有一个巨大的“NFC”文本。去看看它的 TechCrunch 录音。
    • 不,我没有。谢谢,我去看看。
    • @tricknology TouchID 自 iPhone 5S 以来才出现,这几乎是一年前。 API 于 3 个月前向开发者发布。
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      我认为,我们还需要一段时间才能将 NFC 的访问视为其纯粹的安全方面,例如能够从某人身边走过,然后让您的手机查看卡的详细信息,或者只是简单地在某人留在桌子上的钱包上挥动您的手机。

      我认为 Apple 的第一步是与银行交谈,并在允许之前找到更多保护卡和 NFC 的方法

      【讨论】:

        【解决方案6】:

        目前,Apple没有向开发人员开放任何访问嵌入式 NFC 芯片的权限,如许多文章所建议的那样:

        名单还在继续。主要原因似乎(就像过去添加到 iPhone 的许多其他硬件功能一样)苹果希望在发布任何 API 让开发人员做任何他们想做的事情之前确保此类技术的安全性。所以一开始,他们只会在内部使用它来满足他们的需要(例如在发布时使用 Apple Pay)。

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

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

        【讨论】:

        • 您意识到您引用的文章使用此问题作为来源?它来了一个完整的循环......
        • 不知道技术记者使用 SO 作为来源,但我想这是有道理的。无论如何,我的意思只是引用来源,因为最初的问题是关于我们开发人员使用嵌入在最后一部 iPhone 中的 NFC 芯片发布代码的能力。
        • @m4rtin,“但最终,我想我们都同意他们会开发这样的 API,这只是时间问题。”不,这是钱的问题!获得完整的蓝牙支持需要数年时间,他们不想听到关于闪存和 NFC 的讨论,他们只是承担了支付部分。苹果只有在能够赢钱的情况下才集成一项技术。他们绝对不关心技术可以为他们的用户提供的服务!
        【解决方案7】:

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

        IMO 不允许这种可能性是一种短视的举动,但真正的钱在于 Apple Pay,而不一定是允许开发人员访问这些功能 - 我们之前已经看到过网络共享、蓝牙 SPP 和访问权限减少的情况到某些功能。

        ...不过话说回来,距离第一次宣布已经过去了大约 5 个小时。

        【讨论】:

        • 现有的 NFC 读取器能否读取 iPhone 6 的 NFC 数据?
        猜你喜欢
        • 1970-01-01
        • 2015-12-25
        • 1970-01-01
        • 2020-02-05
        • 2022-09-30
        • 1970-01-01
        • 2019-04-19
        相关资源
        最近更新 更多