- java.lang.Object
-
- javax.smartcardio.Card
-
public abstract class Cardextends Object
已建立连接的智能卡。 通过调用CardTerminal.connect()
获得卡对象。- 从以下版本开始:
- 1.6
- 另请参见:
-
CardTerminal
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Card()
构造一个新的Card对象。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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
打开卡的新逻辑通道并返回它。 通过发出应使用格式[00 70 00 00 01]
的MANAGE CHANNEL
命令打开该通道。- 结果
- 已打开的逻辑通道
- 异常
-
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
将控制命令发送到终端设备。例如,这可用于控制终端功能,如内置密码键盘或生物识别。
- 参数
-
controlCode
- 命令的控制代码 -
command
- 命令数据 - 结果
- 来自终端设备的响应
- 异常
-
SecurityException
- 如果存在SecurityManager且调用者没有所需的permission -
NullPointerException
- 如果command为null -
CardException
- 如果卡操作失败 -
IllegalStateException
- 如果此卡对象已通过 disconnect()方法处理
-
disconnect
public abstract void disconnect(boolean reset) throws CardException
断开与此卡的连接。 此方法返回后,调用此对象或与此对象关联的CardChannels中需要与卡交互的方法将引发IllegalStateException。- 参数
-
reset
- 断开连接后是否重置卡。 - 异常
-
CardException
- 如果卡操作失败 -
SecurityException
- 如果存在SecurityManager且调用者没有所需的permission
-
-