- java.lang.Object
-
- javax.smartcardio.Card
-
public abstract class Card extends Object
与其建立连接的智能卡。 卡片对象是通过调用CardTerminal.connect()获得的。- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminal
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedCard()构造一个新的Card对象。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract voidbeginExclusive()请求独占访问此卡。abstract voiddisconnect(boolean reset)断开与此卡的连接。abstract voidendExclusive()发布以前使用beginExclusive建立的独占访问。abstract ATRgetATR()返回此卡的ATR。abstract CardChannelgetBasicChannel()返回基本逻辑通道的CardChannel。abstract StringgetProtocol()返回此卡使用的协议。abstract CardChannelopenLogicalChannel()打开一个新的逻辑通道卡并返回。abstract byte[]transmitControlCommand(int controlCode, byte[] command)向终端设备发送控制命令。
-
-
-
构造方法详细信息
-
Card
protected Card()
构造一个新的Card对象。此构造函数仅由子类调用。 应用程序应该调用CardTerminal.connect()方法来获取一个Card对象。
-
-
方法详细信息
-
getATR
public abstract ATR getATR()
返回此卡的ATR。- 结果
- 这张卡的ATR。
-
getProtocol
public abstract String getProtocol()
返回此卡使用的协议。- 结果
- 该卡的使用协议,例如“T = 0”或“T = 1”
-
getBasicChannel
public abstract CardChannel getBasicChannel()
返回基本逻辑通道的CardChannel。 基本逻辑通道的通道号为0。- 结果
- CardChannel为基本的逻辑通道
- 异常
-
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission -
IllegalStateException- 如果此卡对象已经通过 disconnect()方法处理
-
openLogicalChannel
public abstract CardChannel openLogicalChannel() throws CardException
打开一个新的逻辑通道卡并返回。 通过发出MANAGE CHANNEL命令打开通道,该命令应使用格式[00 70 00 00 01]。- 结果
- 已经打开的逻辑通道
- 异常
-
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission -
CardException- 是一个新的逻辑通道无法打开 -
IllegalStateException- 如果此卡对象已通过 disconnect()方法处理
-
beginExclusive
public abstract void beginExclusive() throws CardException请求独占访问此卡。一旦线程调用了
beginExclusive,只有这个线程才允许与此卡通信,直到它调用endExclusive。 尝试通信的其他线程将收到CardException。应用程序必须确保专有访问被正确发布。 这可以通过在
try ... finally块中执行beginExclusive()和endExclusive调用来实现。- 异常
-
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission -
CardException- 如果已经设置了独占访问,或者无法建立独占访问权限 -
IllegalStateException- 如果此卡对象已通过 disconnect()方法处理
-
endExclusive
public abstract void endExclusive() throws CardException发布以前使用beginExclusive建立的独家访问。- 异常
-
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission -
IllegalStateException- 如果活动线程当前没有对该卡的独占访问权限,或者如果该卡对象已经通过 disconnect()方法处理 -
CardException- 操作是否失败
-
transmitControlCommand
public abstract byte[] transmitControlCommand(int controlCode, byte[] command) throws CardException向终端设备发送控制命令。这可以用于例如控制终端功能,如内置PIN键盘或生物识别技术。
- 参数
-
controlCode- 命令的控制代码 -
command- 命令数据 - 结果
- 来自终端设备的响应
- 异常
-
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission -
NullPointerException- 如果命令为空 -
CardException- 如果卡操作失败 -
IllegalStateException- 如果此卡对象已通过 disconnect()方法处理
-
disconnect
public abstract void disconnect(boolean reset) throws CardException断开与此卡的连接。 此方法返回后,调用此对象或与此对象关联的CardChannels中需要与卡进行交互的方法会引发IllegalStateException。- 参数
-
reset- 断开连接后是否重置卡。 - 异常
-
CardException- 如果卡操作失败 -
SecurityException- 如果SecurityManager存在,并且调用方没有所需的permission
-
-