【发布时间】:2014-02-13 14:47:36
【问题描述】:
当我将 SIII (Android 4.3) 放在 ACR122U NFC 阅读器上时,LED 一直闪烁绿色。当我将三星 S4 (Android 4.3) LED 变为绿色时,直到手机在读卡器上。在这两种情况下,NFC 都已打开并且设备处于解锁状态。 此行为转化为 SIII 中的频繁断开连接和 S4 上的稳定连接。为什么两部手机的行为不同?我知道两部手机都有来自 NXP 和 Broadcom 这两家不同供应商的 NFC 芯片组。
我的问题是这些设备之间这种不一致行为的根源是什么?
另一个问题是为什么手机会给出 ATR?
【问题讨论】:
-
你用的是什么模式?手机使用的是读写器模式、卡模拟模式还是点对点模式?
-
我只是用默认设置连接阅读器,没有 PC 应用程序。手机上没有安装其他应用程序,唯一更改的设置是 NFC 开启。
-
因此您在读写器模式下使用一个 NFC 设备(ACR122U),在点对点模式下使用第二个 NFC 设备(Android 手机)(或者您使用的是支持 NFC 的 SIM卡?在那种情况下,至少 S4 也会激活卡模拟模式...)虽然点对点模式(在某些条件下)对读卡器来说就像一张非接触式卡,但你不能指望他们与由于不同的操作模式和协议。因此,您尝试做的事情没有多大意义(除了启用 NFC 的 SIM 卡的情况),也不会产生任何有用的结果。
-
我们没有使用 NFC SIM 卡。当我使用 PC/SC 库向阅读器的 NFC 控制器发送 TginitTarget 命令以将其置于 PICC 仿真模式时,真正的问题出现了。在算法上,我们选择一个读卡器,然后连接到读卡器并发送用 ACR122U 规定的特殊 APDU 包装的控制器命令。如果 S4 连接到读卡器成功,因为手机提供 ATR 并且连接保持稳定,而在 S3 连接失败并且 TginitTarget 失败并显示 6300。code.google.com/p/ismb-snep-java/issues/detail?id=1
-
那么你能解释一下你现在在做什么吗?如果您使用
TgInitAsTarget,那么您不是在读/写模式下使用 ACR122U,而是在卡模拟模式下使用。在这种情况下,Android 设备将以读/写模式运行。您能否解释一下为什么您认为手机会发送 ATR? (顺便说一句。在这两种情况下都不涉及 ATR,因为 ATR 特定于接触式智能卡。)
标签: android nfc smartcard hce acr122