モジュール java.smartcardio
パッケージ javax.smartcardio

クラスCard

java.lang.Object
javax.smartcardio.Card

public abstract class Card
extends Object
接続が確立されているスマート・カードです。 Cardオブジェクトは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)
    制御コマンドを端末装置に送信します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • カード

      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が存在し、呼出し側に必要なアクセス権がない場合
      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
      このカードとの接続を切断します。 このメソッドが復帰したあと、このオブジェクトで、またはこのオブジェクトに関連付けられ、カードとのやり取りが必要なCardChannelでメソッドを呼び出すと、IllegalStateExceptionが発生します。
      パラメータ:
      reset - 切断後にカードをリセットするかどうか。
      例外:
      CardException - カード操作が失敗した場合
      SecurityException - SecurityManagerが存在し、呼出し側に必要なアクセス権がない場合