小编P. *_*man的帖子

Android NFC:使用 transceive() 时出现异常“transceive failed”

我正在尝试在三星 Galaxy S3 和支持NfcAIsoDep(Mifare DESFire EV1)的智能卡之间进行通信。为此,我启用了 forgeground 调度并在发现标签时启动了一项任务。任务中的代码如下所示:

IsoDep isoDep = IsoDep.get(tag);

byte[] selectCommand = {
        (byte)0x00, // CLA
        (byte)0xA4, // INS
        (byte)0x04, // P1
        (byte)0x00, // P2
        (byte)0x0A, // LC
        (byte)0x01,(byte)0x02,(byte)0x03,(byte)0x04,(byte)0x05,(byte)0x06,(byte)0x07,(byte)0x08,(byte)0x09,(byte)0xFF, // AID
        (byte)0x7F  // LE
};

try {
    isoDep.connect();
    byte[] response = isoDep.transceive(selectCommand);
    String result = bytesToString(response);
    isoDep.close();
    return result;
} catch (Exception e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

transceive 方法抛出这个异常:

java.io.IOException: Transceive failed
Run Code Online (Sandbox Code Playgroud)

IsoDep(如getTimeout()) 的所有其他方法都可以毫无错误地执行。增加超时不会改变行为。在选择命令中带有 AID 的小程序出现在卡上。我也尝试使用NfcA该类。但是后来我得到了“标签丢失”的异常。

Galaxy S3 可能是问题所在吗?

android smartcard nfc mifare contactless-smartcard

5
推荐指数
1
解决办法
2502
查看次数

Java Card:关键协议的域参数?

使用类javacard.security.KeyAgreement(Java Card 3.0.1 classic)可以制定EC-DH密钥协议.但是没有定义具体的曲线.据我所知,标准IEEE P1363没有指定域参数.那么Java Card实现中使用了什么曲线?

cryptography smartcard javacard

4
推荐指数
1
解决办法
442
查看次数