我有一个双界面Java卡,其中包含我的applet。我希望对来自不同接口的单个命令有两个不同的APDU响应。
例如,我想用"联系"来回复HandlerMethodArgumentResolver
APDU命令。当从联系人界面收到命令并响应" ContactLess"从非接触式接口收到此命令时。
那么, Java Card API或 Global Platform API中是否有任何方法可以检测传入命令的界面?
答案 0 :(得分:4)
getProtocol()
类中有一个名为javacard.framework.APDU
的方法:
public static byte getProtocol()
返回ISO 7816传输协议类型,低半字节中的T = 1或T = 0以及正在使用的高半字节中的传输介质。
接口编码在返回字节的高半字节中:
final byte transportMedia = (byte) (APDU.getProtocol() & APDU.PROTOCOL_MEDIA_MASK);
final boolean isContactless = (transportMedia == APDU.PROTOCOL_MEDIA_CONTACTLESS_TYPE_A) ||
(transportMedia == APDU.PROTOCOL_MEDIA_CONTACTLESS_TYPE_B);