| Class | Description | 
|---|---|
| ATR | A Smart Card's answer-to-reset bytes. | 
| Card | A Smart Card with which a connection has been established. | 
| CardChannel | A logical channel connection to a Smart Card. | 
| CardPermission | A permission for Smart Card operations. | 
| CardTerminal | A Smart Card terminal, sometimes referred to as a Smart Card Reader. | 
| CardTerminals | The set of terminals supported by a TerminalFactory. | 
| CommandAPDU | A command APDU following the structure defined in ISO/IEC 7816-4. | 
| ResponseAPDU | A response APDU as defined in ISO/IEC 7816-4. | 
| TerminalFactory | A factory for CardTerminal objects. | 
| TerminalFactorySpi | The TerminalFactorySpi class defines the service provider interface. | 
| Enum | Description | 
|---|---|
| CardTerminals.State | Enumeration of attributes of a CardTerminal. | 
| Exception | Description | 
|---|---|
| CardException | Exception for errors that occur during communication with the
 Smart Card stack or the card itself. | 
| CardNotPresentException | Exception thrown when an application tries to establish a connection with a
 terminal that has no card present. | 
The API is defined by classes in the package
javax.smartcardio. They can be classified as follows:
        // 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);
 Copyright © 2005, 2017, Oracle and/or its affiliates.  All rights reserved.