Class CardTerminal

java.lang.Object
javax.smartcardio.CardTerminal

public abstract class CardTerminal extends Object
智能卡终端,有时称为智能卡阅读器。可以通过调用CardTerminals.list()CardTerminals.getTerminal()来获取CardTerminal对象。

请注意,具有多个卡槽的物理读卡器由每个卡槽表示一个CardTerminal对象。

自版本:
1.6
参见:
  • Constructor Details

    • CardTerminal

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

      此构造函数仅由子类调用。应用程序应调用list()getTerminal()来获取CardTerminal对象。

  • Method Details

    • getName

      public abstract String getName()
      返回此终端的唯一名称。
      返回:
      此终端的唯一名称。
    • connect

      public abstract Card connect(String protocol) throws CardException
      建立与卡的连接。如果先前使用指定协议建立了连接,则此方法返回与先前调用相同的Card对象。
      参数:
      protocol - 要使用的协议("T=0","T=1"或"T=CL"),或"*"以使用任何可用协议连接。
      返回:
      已建立连接的卡
      抛出:
      NullPointerException - 如果协议为null
      IllegalArgumentException - 如果协议是无效的协议规范
      CardNotPresentException - 如果此终端中没有卡
      CardException - 如果无法使用指定协议建立连接,或者如果先前使用不同协议建立了连接
      SecurityException - 如果存在SecurityManager并且调用者没有所需的权限
    • isCardPresent

      public abstract boolean isCardPresent() throws CardException
      返回此终端是否存在卡。
      返回:
      此终端是否存在卡。
      抛出:
      CardException - 如果无法确定状态
    • waitForCardPresent

      public abstract boolean waitForCardPresent(long timeout) throws CardException
      等待直到此终端中存在卡或超时到期。如果方法由于超时到期而返回,则返回false。否则返回true。

      如果在调用此方法时此终端中存在卡,它将立即返回。

      参数:
      timeout - 如果为正数,则最多阻塞timeout毫秒;如果为零,则无限期阻塞;不得为负数
      返回:
      如果方法由于超时到期而返回,则返回false,否则返回true。
      抛出:
      IllegalArgumentException - 如果超时为负数
      CardException - 如果操作失败
    • waitForCardAbsent

      public abstract boolean waitForCardAbsent(long timeout) throws CardException
      等待直到此终端中不存在卡或超时到期。如果方法由于超时到期而返回,则返回false。否则返回true。

      如果在调用此方法时此终端中不存在卡,它将立即返回。

      参数:
      timeout - 如果为正数,则最多阻塞timeout毫秒;如果为零,则无限期阻塞;不得为负数
      返回:
      如果方法由于超时到期而返回,则返回false,否则返回true。
      抛出:
      IllegalArgumentException - 如果超时为负数
      CardException - 如果操作失败