我用Nexus 4,Nexus 5和三星Galaxy S4手机测试了我的Android Java应用程序。在测试中,阅读器发送长度最多为252字节的APDU。 Nexus手机成功接收APDU。另一方面,Galaxy S4手机无法接收包含超过128个字节的APDU。它只接收发送方252字节的前128个字节。
如何确定设备的最大可接收APDU大小?
答案 0 :(得分:1)
目前没有方法可以找到最大可接收的APDU长度(试验和错误除外)。
关于最大可接收APDU长度,有一个开放的AOSP错误报告(#69233)。该报告解释了
Nexus 5能够接收总长度为255字节的命令APDU。因此,3个APDU可以具有最多250个有效负载字节。
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体验过这一点)。
除了使用其他转发器外,您无能为力。