This specification describes the Java Smart Card I/O API defined by
JSR 268.
It defines a Java API for communication with Smart Cards
using ISO/IEC 7816-4 APDUs. It thereby allows Java applications to interact with
applications running on the Smart Card, to store and retrieve data
on the card, etc.
The API is defined by classes in the package
javax.smartcardio. They can be classified as follows:
Classes describing the corresponding Smart Card structures
// show the list of available terminals
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
System.out.println("Terminals: " + terminals);
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
Card card = terminal.connect("T=0");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
ResponseAPDU r = channel.transmit(new CommandAPDU(c1));
System.out.println("response: " + toString(r.getBytes()));
// disconnect
card.disconnect(false);
Java™ Smart Card I/O API
This specification describes the Java Smart Card I/O API defined by JSR 268. It defines a Java API for communication with Smart Cards using ISO/IEC 7816-4 APDUs. It thereby allows Java applications to interact with applications running on the Smart Card, to store and retrieve data on the card, etc.The API is defined by classes in the package
javax.smartcardio. They can be classified as follows:API Example
A simple example of using the API is:// show the list of available terminals TerminalFactory factory = TerminalFactory.getDefault(); List<CardTerminal> terminals = factory.terminals().list(); System.out.println("Terminals: " + terminals); // get the first terminal CardTerminal terminal = terminals.get(0); // establish a connection with the card Card card = terminal.connect("T=0"); System.out.println("card: " + card); CardChannel channel = card.getBasicChannel(); ResponseAPDU r = channel.transmit(new CommandAPDU(c1)); System.out.println("response: " + toString(r.getBytes())); // disconnect card.disconnect(false);