- 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)
制御コマンドを端末装置に送信します。
-
-
-
コンストラクタの詳細
-
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が存在し、呼出し側に必要なアクセス権がない場合
-
-