有谁知道如何使用 NFC API 获取 Android 应用程序的智能卡 ATR?我使用的卡是非接触式卡。我有这个代码
szATR =" 3B " + getATRLeString(myTag.getHistoricalBytes())+ "80 01 " + getHexString(myTag.getHistoricalBytes())+""+ getATRXorString(myTag.getHistoricalBytes());
但它null
作为响应返回。
有谁知道如何使用 NFC API 获取 Android 应用程序的智能卡 ATR?我使用的卡是非接触式卡。我有这个代码
szATR =" 3B " + getATRLeString(myTag.getHistoricalBytes())+ "80 01 " + getHexString(myTag.getHistoricalBytes())+""+ getATRXorString(myTag.getHistoricalBytes());
但它null
作为响应返回。
从技术上讲,NFC 标签没有 ATR 之类的东西。
ATR 用于基于联系人的智能卡通信。ATR 主要包含基于联系人的通信所需的数据,例如最大通信速度、保护时间等。所有这些信息都不适用于 NFC。ATR 也可能包含所谓的历史字节。
如果您对 myTag.getHistoricalBytes() 的调用返回 null,那么您的 NFC 标签根本没有任何要返回的历史字节。
一般而言,关于 ATR 和 NFC:由于许多 NFC 标签和智能卡都使用相同的高级通信协议 (ISO7816),因此将 NFC 功能添加到智能卡读卡器是自然的选择。出于与旧软件的兼容性原因,软件和智能卡基础设施需要一些 ATR 才能工作。因此,每当您在 NFC 上下文中看到 ATR 时,您都可以确定它是由驱动程序或读取器生成的假 ATR。