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

クラスCard


  • public abstract class Card
    extends Object
    接続が確立されているスマート・カードです。 CardオブジェクトはCardTerminal.connect()を呼び出して取得します。
    導入されたバージョン:
    1.6
    関連項目:
    CardTerminal
    • コンストラクタの詳細

      • 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が存在し、呼出し側に必要なアクセス権がない場合
        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が存在し、呼出し側に必要なアクセス権がない場合