【问题标题】:6A82 APDU communication issue between NFC enabled Android phone and ISO/IEC 14443-4 Smart Card6A82 支持 NFC 的 Android 手机和 ISO/IEC 14443-4 智能卡之间的 APDU 通信问题
【发布时间】:2015-01-12 11:00:26
【问题描述】:

我目前正在使用一个使用 NFC 的 Android 支付应用程序。为此,Android 应用程序需要向 ISO/IEC 14443-4 智能卡发送和接收 APDU 命令。

当我使用 Galaxy S5(OS 4.4.2) 或 Galaxy s3(OS 4.1.2) 测试我的应用程序时,我收到 6A82

我的代码流程如下:

第一步->

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
 IsoDep iso = IsoDep.get(tag); 
 iso.connect();

第二步-> 通过使用iso.transceive().. 我正在将 APDU 命令0084000008 从移动应用程序发送到智能卡和 接收F5BC9C9F3A2B7C179000 作为响应。

第三步 -> 使用iso.isConnect() 我正在检查连接并 -> 连接可用

第四步 -> 通过使用iso.transceive().. 发送 APDU 命令:903203000A1403CF549C2B7520389C 接收:6A82 一直

如果有人告诉我为什么我会为这个 APDU 命令找到奇怪的 File not found (6A82),我会很高兴。

【问题讨论】:

  • 您使用的是什么智能卡?卡上正在运行什么应用程序?该卡/应用程序的协议规范是什么?
  • 智能卡 - gemalto,协议规范 - CEPAS,卡上运行的应用程序 - ezlink 特定

标签: java android nfc apdu


【解决方案1】:

在调用iso.connect() 之后,您应该先发送选择 apdu 00A40400 + 例如:

(你应该先将十六进制转换为字节)

aid = AABBCCDD;

byte[] selectCmd = 00A4040004AABBCCDD

isoDep.transceive(command)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2012-06-22
    • 2021-12-22
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多