public class Reader
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
Reader.OnStateChangeListener
Interface definition for a callback to be invoked when the state of
reader is changed.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
CARD_ABSENT
There is no card in the reader.
|
static int |
CARD_COLD_RESET
Cycle power and reset the card.
|
static int |
CARD_NEGOTIABLE
The card has been reset and is awaiting PTS negotiation.
|
static int |
CARD_POWER_DOWN
Power down the card.
|
static int |
CARD_POWERED
Power is being provided to the card, but the library is unaware of the
mode of the card.
|
static int |
CARD_PRESENT
There is a card in the reader, but it has not been moved into position
for use.
|
static int |
CARD_SPECIFIC
The card has been reset and specific communication protocols have been
established.
|
static int |
CARD_SWALLOWED
There is a card in the reader in position for use.
|
static int |
CARD_UNKNOWN
The library is unaware of the current state of the reader.
|
static int |
CARD_WARM_RESET
Force a reset on the card.
|
static int |
IOCTL_ACR128_READER_COMMAND
Control code for sending command to ACR128 reader.
|
static int |
IOCTL_ACR83_DISPLAY_LCD_MESSAGE
Control code for displaying LCD message on ACR83/APG8201 reader.
|
static int |
IOCTL_ACR83_GET_FIRMWARE_VERSION
Control code for getting firmware version from ACR83/APG8201 reader.
|
static int |
IOCTL_ACR83_READ_KEY
Control code for reading key from ACR83/APG8201 reader.
|
static int |
IOCTL_CCID_ESCAPE
Control code for sending escape command to the reader.
|
static int |
IOCTL_GET_FEATURE_REQUEST
Control code for getting supported features (PC/SC 2.0 Part 10).
|
static int |
PROTOCOL_DEFAULT
Use the default transmission parameters or card clock frequency.
|
static int |
PROTOCOL_OPTIMAL
Use optimal transmission parameters or card clock frequency.
|
static int |
PROTOCOL_RAW
Raw is the active protocol.
|
static int |
PROTOCOL_T0
T=0 is the active protocol.
|
static int |
PROTOCOL_T1
T=1 is the active protocol.
|
static int |
PROTOCOL_TX
This is the mask of ISO defined transmission protocols.
|
static int |
PROTOCOL_UNDEFINED
There is no active protocol.
|
| Constructor and Description |
|---|
Reader(UsbManager manager)
Creates an instance of Reader.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes the reader.
|
int |
control(int slotNum,
int controlCode,
byte[] inBuffer,
int inBufferLength,
byte[] outBuffer,
int outBufferLength)
Controls the reader.
|
byte[] |
getAtr(int slotNum)
Gets the ATR string.
|
UsbDevice |
getDevice()
Gets the device.
|
int |
getNumSlots()
Gets the number of slots.
|
int |
getProtocol(int slotNum)
Gets the active protocol.
|
java.lang.String |
getReaderName()
Gets the reader name.
|
int |
getState(int slotNum)
Gets the card state.
|
boolean |
isOpened()
Returns true if the reader is opened.
|
boolean |
isSupported(UsbDevice device)
Returns true if the reader is supported.
|
void |
open(UsbDevice device)
Opens the reader.
|
byte[] |
power(int slotNum,
int action)
Performs the power action on the card.
|
void |
setOnStateChangeListener(Reader.OnStateChangeListener listener)
Registers a callback to be invoked when the state of reader is changed.
|
int |
setProtocol(int slotNum,
int preferredProtocols)
Sets the protocol.
|
int |
transmit(int slotNum,
byte[] sendBuffer,
int sendBufferLength,
byte[] recvBuffer,
int recvBufferLength)
Transmits the APDU.
|
public static final int CARD_POWER_DOWN
public static final int CARD_COLD_RESET
public static final int CARD_WARM_RESET
public static final int PROTOCOL_UNDEFINED
public static final int PROTOCOL_T0
public static final int PROTOCOL_T1
public static final int PROTOCOL_RAW
public static final int PROTOCOL_TX
public static final int PROTOCOL_DEFAULT
public static final int PROTOCOL_OPTIMAL
public static final int CARD_UNKNOWN
public static final int CARD_ABSENT
public static final int CARD_PRESENT
public static final int CARD_SWALLOWED
public static final int CARD_POWERED
public static final int CARD_NEGOTIABLE
public static final int CARD_SPECIFIC
public static final int IOCTL_CCID_ESCAPE
public static final int IOCTL_ACR128_READER_COMMAND
public static final int IOCTL_ACR83_GET_FIRMWARE_VERSION
public static final int IOCTL_ACR83_DISPLAY_LCD_MESSAGE
public static final int IOCTL_ACR83_READ_KEY
public static final int IOCTL_GET_FEATURE_REQUEST
public Reader(UsbManager manager)
manager - the USB manager.public boolean isSupported(UsbDevice device)
device - the USB device.public void open(UsbDevice device)
device - the USB device.public void close()
public boolean isOpened()
public UsbDevice getDevice()
public int getNumSlots()
public java.lang.String getReaderName()
public void setOnStateChangeListener(Reader.OnStateChangeListener listener)
listener - the callback that will run.public byte[] power(int slotNum,
int action)
throws ReaderException
slotNum - the slot number.action - the action to be performed on the card:
CARD_POWER_DOWN, CARD_COLD_RESET or
CARD_WARM_RESET.ReaderException - if the reader is not opened or the reader is failed to
perform the power action on the card.public byte[] getAtr(int slotNum)
slotNum - the slot number.public int setProtocol(int slotNum,
int preferredProtocols)
throws ReaderException
slotNum - the slot number.preferredProtocols - the preferred protocols. It can be combined with OR operation.
For example, PROTOCOL_T0 | PROTOCOL_T1.PROTOCOL_T0 or
PROTOCOL_T1.ReaderException - if the reader is failed to set protocol.public int getProtocol(int slotNum)
slotNum - the slot number.PROTOCOL_UNDEFINED,
PROTOCOL_T0 or PROTOCOL_T1.public int getState(int slotNum)
slotNum - the slot number.CARD_ABSENT, CARD_PRESENT,
CARD_SWALLOWED, CARD_POWERED,
CARD_NEGOTIABLE or CARD_SPECIFIC.public int transmit(int slotNum,
byte[] sendBuffer,
int sendBufferLength,
byte[] recvBuffer,
int recvBufferLength)
throws ReaderException
slotNum - the slot number.sendBuffer - the send buffer.sendBufferLength - the send buffer length.recvBuffer - the receive buffer.recvBufferLength - the receive buffer length.ReaderException - if the reader is not opened or the reader is failed to
transmit the APDU.public int control(int slotNum,
int controlCode,
byte[] inBuffer,
int inBufferLength,
byte[] outBuffer,
int outBufferLength)
throws ReaderException
slotNum - the slot number.controlCode - the control code.inBuffer - the input buffer.inBufferLength - the input buffer length.outBuffer - the output buffer.outBufferLength - the output buffer length.ReaderException - if the reader is not opened or the reader does not accept the
control.Copyright © 2011-2014 Advanced Card Systems Ltd. All Rights Reserved.