2

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

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

4

3 回答 3

1

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

于 2014-05-26T07:21:47.303 回答
1

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

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

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

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

于 2014-05-23T14:46:12.260 回答
0

我自己有一个 Galaxy S4,并且 mit 能够传输和/或接收高达 255 字节的 apdus。我没有尝试过extendedAPDU,但它们应该也可以。

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

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

于 2014-05-23T14:40:34.497 回答