public abstract class Card extends Object
CardTerminal.connect().CardTerminal| Modifier | Constructor | Description |
|---|---|---|
protected |
Card() |
Constructs a new Card object.
|
| Modifier and Type | Method | Description |
|---|---|---|
abstract void |
beginExclusive() |
Requests exclusive access to this card.
|
abstract void |
disconnect(boolean reset) |
Disconnects the connection with this card.
|
abstract void |
endExclusive() |
Releases the exclusive access previously established using
beginExclusive. |
abstract ATR |
getATR() |
Returns the ATR of this card.
|
abstract CardChannel |
getBasicChannel() |
Returns the CardChannel for the basic logical channel.
|
abstract String |
getProtocol() |
Returns the protocol in use for this card.
|
abstract CardChannel |
openLogicalChannel() |
Opens a new logical channel to the card and returns it.
|
abstract byte[] |
transmitControlCommand(int controlCode,
byte[] command) |
Transmits a control command to the terminal device.
|
protected Card()
This constructor is called by subclasses only. Application should call the CardTerminal.connect() method to obtain a Card object.
public abstract ATR getATR()
public abstract String getProtocol()
public abstract CardChannel getBasicChannel()
SecurityException - if a SecurityManager exists and the
caller does not have the required
permissionIllegalStateException - if this card object has been disposed of
via the disconnect() methodpublic abstract CardChannel openLogicalChannel() throws CardException
MANAGE CHANNEL command that should use
the format [00 70 00 00 01].SecurityException - if a SecurityManager exists and the
caller does not have the required
permissionCardException - is a new logical channel could not be openedIllegalStateException - if this card object has been disposed of
via the disconnect() methodpublic abstract void beginExclusive()
throws CardException
Once a thread has invoked beginExclusive, only this
thread is allowed to communicate with this card until it calls
endExclusive. Other threads attempting communication
will receive a CardException.
Applications have to ensure that exclusive access is correctly
released. This can be achieved by executing
the beginExclusive() and endExclusive calls
in a try ... finally block.
SecurityException - if a SecurityManager exists and the
caller does not have the required
permissionCardException - if exclusive access has already been set
or if exclusive access could not be establishedIllegalStateException - if this card object has been disposed of
via the disconnect() methodpublic abstract void endExclusive()
throws CardException
beginExclusive.SecurityException - if a SecurityManager exists and the
caller does not have the required
permissionIllegalStateException - if the active Thread does not currently have
exclusive access to this card or
if this card object has been disposed of
via the disconnect() methodCardException - if the operation failedpublic abstract byte[] transmitControlCommand(int controlCode,
byte[] command)
throws CardException
This can be used to, for example, control terminal functions like a built-in PIN pad or biometrics.
controlCode - the control code of the commandcommand - the command dataSecurityException - if a SecurityManager exists and the
caller does not have the required
permissionNullPointerException - if command is nullCardException - if the card operation failedIllegalStateException - if this card object has been disposed of
via the disconnect() methodpublic abstract void disconnect(boolean reset)
throws CardException
reset - whether to reset the card after disconnecting.CardException - if the card operation failedSecurityException - if a SecurityManager exists and the
caller does not have the required
permission
Copyright © 2005, 2025, Oracle and/or its affiliates. All rights reserved.