gpt4 book ai didi

java - IsoDep.transceive(command) 以 [110, 0] 字节响应?

转载 作者:行者123 更新时间:2023-11-29 20:56:54 31 4
gpt4 key购买 nike

我使用 NFC 标签,它发现了 ISO、NFCA 和 NDEF 技术。有信息要从芯片读取,我尝试访问内存,但我用来与TAG通信的大多数命令都以响应[110, 0] 字节。我找不到这是什么意思,其中一些以 [109, 0][106, -122] 响应。最常见的是 [110, 0]。这些数据存储在标准 NDEF 内容之外。

我找不到关于这种响应的任何信息,可能是某种错误。也许我误解了 IsoDep 协议(protocol),但它看起来很简单:

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

byte[] mMaster = iso.transceive(CommandFactory.GET_MASTER_APP);
byte[] mApplciation = iso
.transceive(CommandFactory.SELECT_APPLICATION);

据我所知,它是“无状态”协议(protocol),因此无需按特定顺序发送命令?

有什么想法吗?

最佳答案

如果 Android 为标签显示 NfcA + IsoDep + Ndef 标签技术,这意味着该标签是 NFC Forum Type 4 标签。请注意,与 Type 4 标签的通信根本不是无状态的。该标签包含符合 ISO/IEC 7816-4 的文件系统结构,因此您首先必须选择 NDEF 标签应用程序(“目录”),然后 - 在该应用程序中 - 选择某个文件(例如功能容器或 NDEF 数据文件),然后您可以对该文件执行读/写操作。

您在响应命令 APDU 时看到的内容(APDU 是 ISO/IEC 7816-4 中定义的应用程序协议(protocol)数据单元,这就是您在 ISO-DEP 上使用类型 4 标签所说的内容)是包含状态字的响应 APDU .在您的情况下,状态词是

  • [110, 0] 或无符号十六进制 6E 00:不支持命令类
  • [109, 0] 或无符号十六进制 6D 00:不支持的指令代码
  • [106, -112] 或无符号十六进制 6A 90:这是一个奇怪的(非标准的)状态代码。典型的代码是 6A 82 ([106, -126]),这意味着找不到文件或应用程序。

关于java - IsoDep.transceive(command) 以 [110, 0] 字节响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403288/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com