- java.lang.Object
-
- javax.smartcardio.Card
-
public abstract class Card extends Object
与其建立连接的智能卡。 卡片对象是通过调用CardTerminal.connect()
获得的。- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminal
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Card()
构造一个新的Card对象。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract void
beginExclusive()
请求独占访问此卡。abstract void
disconnect(boolean reset)
断开与此卡的连接。abstract void
endExclusive()
发布以前使用beginExclusive
建立的独占访问。abstract ATR
getATR()
返回此卡的ATR。abstract CardChannel
getBasicChannel()
返回基本逻辑通道的CardChannel。abstract String
getProtocol()
返回此卡使用的协议。abstract CardChannel
openLogicalChannel()
打开一个新的逻辑通道卡并返回。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
-
-