【问题标题】:how does nfc reader(acr122) detect my phone?NFC 阅读器(acr122)如何检测我的手机?
【发布时间】:2019-04-26 16:57:30
【问题描述】:

我购买了具有 acr122 读卡器、cd 和卡的 ACR122U SDK,我尝试对其进行测试。读卡器通过将其 LED 灯从红色变为绿色来检测卡片,但是当我将手机(NFC 已打开)靠近读卡器时,没有任何反应。

如何让阅读器检测到我的手机?我必须在手机中安装 java 卡小程序才能让我的手机充当非接触式卡?

【问题讨论】:

    标签: android nfc contactless-smartcard hce nfc-p2p


    【解决方案1】:

    使用 ACR122U NFC 阅读器,您有三种选择:

    • 点对点模式下的 ACR122U:在点对点模式下,您可以使用 Android 的内置 Beam 功能与 Android 设备通信。在阅读器方面,您需要实现 SNEP 服务(以及底层 LLCP + NFCIP-1 协议栈)。您可以找到示例,例如,ISMB-SNEPNFC Toolsnfcpy

    • 卡模拟模式下的 ACR122U:在卡模拟模式下,ACR122U 可用于模拟可被 Android 设备检测到的标签/非接触式智能卡,就像任何其他 NFC 标签/非接触式智能卡一样。您可以找到示例,例如,libnfc

    • ACR122U 在读写器模式下:在读写器模式下,ACR122U 可以与非接触式智能卡通信。这与takumar 已经在他的答案中发布的方向一致。虽然您遇到了安全元素的要求(由于缺乏访问权限或什至没有 SE,这通常很困难),但对于最近的 Android 版本(特别是 CyanogenMod 9.1+ 或 Android 4.4+),您可以选择使用主机卡仿真 (HCE) 模式。请参阅Android documentation,了解它在 Android 4.4 及更高版本上的工作原理。

    【讨论】:

    • 我想知道您是否尝试过使用 PN532 在仿真模式(14443-4 PICC 仿真)下使用 iPhone 的 CoreNFC 作为读取器启动器?我一直在尝试它,但没有得到任何理智的结果。 RATS 返回为 0xE0,但是当我尝试从 iPhone 获取第一个命令时,我得到的是 0x60,而不是预期的选择命令 (00 A4 04 00 00)。无论我是否在 iPhone 应用程序的 info.plist 中包含“ISO7816 应用程序标识符”,此结果都是相同的。我期待第一个命令是带有我指定的 AID 的选择命令/
    【解决方案2】:

    您的手机必须启用卡模拟,并非所有手机都启用。此外,您需要弄清楚卡仿真被路由到哪里。这可以是 SIM 卡或某些嵌入式安全元件。完成后,您可以考虑将应用程序部署到测试 SIM 上(您不太可能获得嵌入式安全元件的密钥)。使用 Android 的 AOSP 版本(例如在 Nexus 5 上)会有所帮助,因为您可以设置路由。我相信可以在线购买带有测试密钥的测试 SIM 卡。一旦你有了一个,你就可以使用 GPSShell 来安装应用程序。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      相关资源
      最近更新 更多