У меня есть USB-считыватель смарт-карт EZ100PU и новые (прозрачные) смарт-карты SLE4428. Я хотел бы написать на них числовую последовательность. Я пытаюсь сделать это с помощью простого java-приложения. Это мой код, основанный на других, доступных в Интернете:
public class Connection {
public static void main(String[] args) throws Exception {
TerminalFactory factory = TerminalFactory.getDefault();
CardTerminal terminal = terminals.get(1);
System.out.println("terminal: " + terminal.getName());
Card card = terminal.connect("*");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
System.out.println("channel: " + channel.getChannelNumber());
System.out.println("protocol: "+card.getProtocol());
byte b[]=card.getATR().getBytes();
for(int i=0;i<b.length;i++)
System.out.print(b[i]);
// byte[] bytes = {(byte)0xFF, (byte)0x00, (byte)0xFF, (byte)0x00};
// ResponseAPDU r = channel.transmit(new CommandAPDU(bytes));
card.disconnect(false);
}
}
У меня проблема, потому что я всегда получаю «Неизвестный протокол 16», когда карта находится внутри считывателя. Наверно из-за этого не могу ничего записать на карту, при попытке всегда получаю ошибку. Можешь мне помочь?