Android 4.4 hce(基于主机的卡仿真)“processCommandApdu”apdu长度

时间:2014-05-23 14:27:55

标签: java android nfc apdu hce

我用Nexus 4,Nexus 5和三星Galaxy S4手机测试了我的Android Java应用程序。在测试中,阅读器发送长度最多为252字节的APDU。 Nexus手机成功接收APDU。另一方面,Galaxy S4手机无法接收包含超过128个字节的APDU。它只接收发送方252字节的前128个字节。

如何确定设备的最大可接收APDU大小?

3 个答案:

答案 0 :(得分:1)

目前没有方法可以找到最大可接收的APDU长度(试验和错误除外)。

关于最大可接收APDU长度,有一个开放的AOSP错误报告(#69233)。该报告解释了

  1. Nexus 5能够接收总长度为255字节的命令APDU。因此,3个APDU可以具有最多250个有效负载字节。

  2. Galaxy S4能够接收总长度为252字节的命令APDU。因此,案例3 APDU最多可以具有247个有效载荷字节。

答案 1 :(得分:1)

我发现星系s4实际上接收了252个字节。但连续2个块。对于长度超过128字节的apdus,它会进入两次processCommandApdu函数。

答案 2 :(得分:0)

我自己有一个Galaxy S4,而且能够发送和/或接收最多255个字节的apdus。我还没有尝试过extendedAPDU,但它们也可以正常工作。

可能与阅读器(三星Galaxy S4和卡)的组合相关的问题来自不同制造商的卡表现不同(在ISO14443标准内)。 恕我直言,三星Galaxy S4没有为某些卡提供足够的能量(使用Galaxy S4体验过这一点)。

除了使用其他转发器外,您无能为力。