Class Card

java.lang.Object
javax.smartcardio.Card

public abstract class Card extends Object
已建立连接的智能卡。通过调用CardTerminal.connect()方法获取Card对象。
自版本:
1.6
参见:
  • Constructor Details

    • Card

      protected Card()
      构造一个新的Card对象。

      此构造方法仅由子类调用。应用程序应调用CardTerminal.connect()方法以获取Card对象。

  • Method Details

    • 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并且调用方没有所需的权限
      IllegalStateException - 如果此卡对象已通过disconnect()方法处置
    • openLogicalChannel

      public abstract CardChannel openLogicalChannel() throws CardException
      打开到卡的新逻辑通道并返回它。通过发出应使用格式[00 70 00 00 01]MANAGE CHANNEL命令来打开通道。
      返回:
      已打开的逻辑通道
      抛出:
      SecurityException - 如果存在SecurityManager并且调用方没有所需的权限
      CardException - 如果无法打开新的逻辑通道
      IllegalStateException - 如果此卡对象已通过disconnect()方法处置
    • beginExclusive

      public abstract void beginExclusive() throws CardException
      请求对此卡的独占访问。

      一旦线程调用了beginExclusive,只允许该线程与此卡通信,直到调用endExclusive。其他尝试通信的线程将收到一个CardException。

      应用程序必须确保正确释放独占访问。可以通过在try ... finally块中执行beginExclusive()endExclusive调用来实现。

      抛出:
      SecurityException - 如果存在SecurityManager并且调用方没有所需的权限
      CardException - 如果已设置独占访问或无法建立独占访问
      IllegalStateException - 如果此卡对象已通过disconnect()方法处置
    • endExclusive

      public abstract void endExclusive() throws CardException
      释放之前使用beginExclusive建立的独占访问。
      抛出:
      SecurityException - 如果存在SecurityManager并且调用方没有所需的权限
      IllegalStateException - 如果活动线程当前没有对此卡的独占访问,或者如果此卡对象已通过disconnect()方法处置
      CardException - 如果操作失败
    • transmitControlCommand

      public abstract byte[] transmitControlCommand(int controlCode, byte[] command) throws CardException
      向终端设备发送控制命令。

      例如,可以用于控制终端功能,如内置PIN键盘或生物识别。

      参数:
      controlCode - 命令的控制码
      command - 命令数据
      返回:
      终端设备的响应
      抛出:
      SecurityException - 如果存在SecurityManager并且调用方没有所需的权限
      NullPointerException - 如果命令为null
      CardException - 如果卡操作失败
      IllegalStateException - 如果此卡对象已通过disconnect()方法处置
    • disconnect

      public abstract void disconnect(boolean reset) throws CardException
      断开与此卡的连接。此方法返回后,调用此对象上的方法或与此对象关联的CardChannels上的方法,需要与卡交互的将引发IllegalStateException。
      参数:
      reset - 断开连接后是否重置卡。
      抛出:
      CardException - 如果卡操作失败
      SecurityException - 如果存在SecurityManager并且调用方没有所需的权限