|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Objectcom.docomostar.device.felica.OfflineFelica
オフライン処理(有線カード機能)によって、 内部カードにアクセスする手段を提供するクラスです。 ただし、フリーエリアへのアクセスは除きます。
このクラスのインスタンスの各メソッドは、
Felica.getOfflineFelica(int, int)
の引数で指定されたアクセス先に対して、それぞれの操作を行います。
インスタンス生成後に、アクセス先を変更する手段は用意されていません。
複数のアクセス先に交互にアクセスする必要がある場合には、
アクセス先ごとに、Felica.getOfflineFelica(int, int) にて、
対応するインスタンスを取得してください。
ただし、同じカードの
異なるシステムにアクセスを行った時点で、
そのカード内のPINの解除情報がクリアされます。
このオブジェクトが生成された直後では、タイムアウト値としては
500[ms]
が、
リトライ数としては 0 が、
それぞれ設定されています。
タイムアウト値は setTimeout(int) にて変更可能ですが、リトライ数を変更することはできません。
なお、オンライン処理中においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String) を呼び出してから
OnlineFelica.stop() を呼び出すまでの間に、
このクラスに用意されているメソッドを呼び出すことはできません。
セキュリティ上の制約について
Star アプリが起動してから終了するまでの間に、下記の条件を満たした場合には、
その時点でアプリケーションは強制終了されます。
尚、下記に記されている失敗回数は、このクラスのインスタンス毎にカウントされます。
このクラスのインスタンスのいずれか 1 つが下記の条件を満たした時点で強制終了されます。
パケット種別について
FeliCa カードで管理されるノードコードが従来の 2 バイト長から 4 バイト長に拡張されました。
これに伴い FeliCa カードに発行するコマンドパケット(ノードコードを含むコマンドに限る)について、
従来構成の「2 バイトノードコード指定パケット」に加えて、
拡張構成の「4 バイトノードコード指定パケット」にて発行することが可能です。
ノードコードを含むコマンドパケットを発行するメソッドは以下の通りです。
checkPIN(CheckPINParameters)
executePIN(PINParameters)
read(ReadParameters)
read(InputPINParameters, ReadParameters)
write(WriteParameters)
write(InputPINParameters, WriteParameters)
getKeyVersion(int)
getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
このオブジェクトが生成された直後では、
パケット種別には「2 バイトノードコード指定パケット」が設定されています。
このオブジェクトに設定されているパケット種別を変更するには setNodeCodeLength(int)
を呼び出して下さい。
また、FeliCa カードに発行するコマンドパケットの種別と、
そのカードに設定されている属性(パケット種別)は一致している必要があることに注意して下さい。
FeliCa カードに対して属性設定を行なうには setParameter(long) を呼び出して下さい。
なお、FeliCa カードが起動された直後では、カードに設定されている属性(パケット種別)は
「2 バイトノードコード指定パケット」となっています。
Felica.getOfflineFelica(int, int)| フィールドの概要 | |
static int |
CARD_EXTERNAL
外部カードを表します(=1)。 |
static int |
CARD_INTERNAL
内部カードを表します(=0)。 |
static long |
PARAM_NODE_CODE_LEN_2
2 バイトノードコード指定パケットを表します(=0x0000000000000000)。 |
static long |
PARAM_NODE_CODE_LEN_4
4 バイトノードコード指定パケットを表します(=0x0000000000010000)。 |
| メソッドの概要 | |
PINAttributeData[] |
checkPIN(CheckPINParameters param)
PIN の属性参照を行います。 |
void |
executePIN(PINParameters param)
PINを変更、有効/無効化、或いは照合を行います。 |
int |
getCard()
このオブジェクトの処理対象カードを取得します。 |
byte[] |
getCardVersion()
このオブジェクトがアクセス先として保持しているカードのバージョンを返します。 |
byte[] |
getContainerIssueInfo()
コンテナ発行情報を取得します。 |
byte[] |
getIDm()
このオブジェクトがアクセス先として保持しているIDmを返します。 |
byte[] |
getKeyVersion(int serviceCode)
キーバージョンを取得します。 |
int |
getNodeCodeLength()
このオブジェクトのカード処理におけるパケット種別を取得します。 |
byte[] |
getResponseTimeInfo()
このオブジェクトがアクセス先として保持しているカードの、 コマンド処理時間に関するデータを返します。 |
int |
getSystemCode()
このオブジェクトがアクセス先として保持している システムコードを取得します。 |
int |
getTimeout()
このオブジェクトのカード処理におけるタイムアウト値を取得します。 |
FelicaData[] |
read(InputPINParameters pinParam,
ReadParameters readParam)
PIN照合、ブロック読み込み、リセットを連続して行います。 |
FelicaData[] |
read(ReadParameters param)
ブロックを読み込みます。 |
void |
setNodeCodeLength(int nodeCodeLen)
このオブジェクトのカード処理におけるパケット種別を設定します。 |
void |
setParameter(long param)
コマンドパケットで使用する属性を(処理対象カードに)設定します。 |
void |
setTimeout(int timeout)
このオブジェクトの カード処理におけるタイムアウト値を設定します。 |
void |
write(InputPINParameters pinParam,
WriteParameters writeParam)
PIN照合、ブロック書き込み、リセットを連続して行います。 |
void |
write(WriteParameters param)
ブロックを書き込みます。 |
| クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static final int CARD_INTERNAL
Felica.getOfflineFelica(int, int),
getCard(),
定数フィールド値public static final int CARD_EXTERNAL
Felica.getOfflineFelica(int, int),
getCard(),
定数フィールド値public static final long PARAM_NODE_CODE_LEN_2
setParameter(long),
定数フィールド値public static final long PARAM_NODE_CODE_LEN_4
setParameter(long),
定数フィールド値| メソッドの詳細 |
public PINAttributeData[] checkPIN(CheckPINParameters param)
throws FelicaException,
java.io.IOException
このメソッドによる PIN 属性参照処理は同時性が確保されます。 従って、CheckPINParameters に登録されているパラメータのうち1つでも PIN 属性参照に失敗した場合は、 全てのパラメータの PIN 属性参照は行われません。
CheckPINParameters に登録されているパラメータ数が 対象カードの同時読み込み上限数を超えていた場合、 全てのパラメータの PIN 属性参照は行われません。
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
CheckPINParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - PIN属性参照パラメータを指定します。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
OfflineParameters.getSize() が返す値)
が0個の読み込みパラメータが指定された場合に発生します。
IllegalArgumentException -
FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public void executePIN(PINParameters param)
throws FelicaException,
java.io.IOException
PINを変更、有効/無効化、或いは照合を行います。
引数 param に複数のパラメータが登録されており、かつ、 それらのパラメータのうち1つでもPIN処理に失敗した場合は、 全てのパラメータのPIN処理は行われません。
なお、 PINParametersに登録されているパラメータ数が 対象カードの同時 書き込み 上限数を超えていた場合においては、 引数 param の実行時の型にかかわらず、 全てのパラメータのPIN処理は行われません。
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
PINParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - PINパラメータ。PINParametesのいずれかのサブクラスです。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
OfflineParameters.getSize() が返す値)
が 0 個の PIN パラメータが指定された場合に発生します。
IllegalArgumentException -
IllegalArgumentException -
FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - PINの同時解除数が上限を超えたことにより、
PIN照合に失敗した場合に発生します。
FelicaException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public FelicaData[] read(ReadParameters param)
throws FelicaException,
java.io.IOException
ブロックを読み込みます。
このメソッドによる読み込み処理は同時性が確保されます。 従って、ReadParametersに登録されているパラメータのうち1つでも読み込みに失敗した場合は、 全てのパラメータの読み込みは行われません。
ReadParametersに登録されているパラメータ数が 対象カードの同時読み込み上限数を超えていた場合、 全てのパラメータの読み込みは行われません。
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
ReadParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - 読み込みパラメータ。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
OfflineParameters.getSize() が返す値)
が0個の読み込みパラメータが指定された場合に発生します。
IllegalArgumentException -
FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public FelicaData[] read(InputPINParameters pinParam,
ReadParameters readParam)
throws FelicaException,
java.io.IOException
このメソッドは以下の順に処理を行います。 途中で処理が失敗した場合は、その時点で処理を中断し例外をスローします。
executePIN(pinParam)
と同等の引数チェックを行う)
read(readParam)
と同等の引数チェックを行う)
executePIN(pinParam)
と同等の処理を行う)
read(readParam)
と同等の処理を行う)
Felica.reset()
と同等の処理を行う)
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
InputPINParameters および ReadParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
pinParam - PIN 照合パラメータを指定します。readParam - 読み込みパラメータを指定します。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
executePIN(pinParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
IllegalArgumentException -
read(readParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
FelicaException - executePIN(pinParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - read(readParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - Felica.reset()
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public void write(WriteParameters param)
throws FelicaException,
java.io.IOException
ブロックを書き込みます。
このメソッドによる書き込み処理は同時性が確保されます。 従って、WriteParametersに登録されているパラメータのうち1つでも書き込みに失敗した場合は、 全てのパラメータの書き込みは行われません。
WriteParametersに登録されているパラメータ数が 対象カードの同時書き込み上限数を超えていた場合、 全てのパラメータの書き込みは行われません。
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
WriteParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - 書き込みパラメータ。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
OfflineParameters.getSize() が返す値)
が 0 個の書き込みパラメータが指定された場合に発生します。
IllegalArgumentException -
IllegalArgumentException -
FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public void write(InputPINParameters pinParam,
WriteParameters writeParam)
throws FelicaException,
java.io.IOException
このメソッドは以下の順に処理を行います。 途中で処理が失敗した場合は、その時点で処理を中断し例外をスローします。
executePIN(pinParam)
と同等の引数チェックを行う)
write(writeParam)
と同等の引数チェックを行う)
executePIN(pinParam)
と同等の処理を行う)
write(writeParam)
と同等の処理を行う)
Felica.reset()
と同等の処理を行う)
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
InputPINParameters および WriteParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
pinParam - PIN 照合パラメータを指定します。writeParam - 書き込みパラメータを指定します。
DeviceException - DeviceException - NullPointerException -
IllegalArgumentException -
executePIN(pinParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
IllegalArgumentException -
write(writeParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
FelicaException - executePIN(pinParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - write(writeParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - Felica.reset()
と同等の処理により FelicaException が発生する場合に、
そのままスローされます。
エラー内容(TYPE)はそのまま素通しされます。
java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public byte[] getKeyVersion(int serviceCode)
throws FelicaException,
java.io.IOException
キーバージョンを取得します。
このメソッドの引数に 0xffff または 0xffffffff を指定した場合、 このオブジェクトがアクセス先として保持しているシステムのキーバージョンが返ります。
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 serviceCode に
2 バイト長では表せないサービスコードが指定された場合は例外が発生します。
serviceCode - サービスコード。
全ての範囲の値が指定できます。0xffff または 0xffffffff を除いて、
属性部分には、エリアを表す属性値またはサービスを表す属性値が指定できます。
DeviceException - DeviceException - IllegalArgumentException -
IllegalArgumentException -
FelicaException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public byte[] getContainerIssueInfo()
throws FelicaException,
java.io.IOException
DeviceException - DeviceException - FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public void setParameter(long param)
throws FelicaException,
java.io.IOException
指定できる属性は以下のものです。
・パケット種別 (2バイトノードコード指定パケット、または
4バイトノードコード指定パケット)
なお、このメソッドで設定した属性値は以下の条件で初期化されます。
・FeliCa IC チップをリセットする
・FeliCa IC チップの電源を再投入する
また、このメソッドで設定した属性値は、 以下のメソッドを呼び出すことで変更される可能性があることに注意して下さい。 これは、このメソッドにて発行される属性設定コマンドの効果が、 内部カード全体(内部カードの全システム)に有効であるためです。
setParameter(long)
FreeArea.read()
FreeArea.read(int[])
FreeArea.write(byte[])
FreeArea.write(int[], byte[])
このメソッドは、処理対象カードに対して設定を行なうものであり、
このオブジェクトに対して設定を行なうものではありません。
このオブジェクトに対してパケット種別の設定を行なうには、
setNodeCodeLength(int) を呼び出して下さい。
param - 属性値を指定します。
PARAM_NODE_CODE_LEN_2、または
PARAM_NODE_CODE_LEN_4 を指定可能です。
DeviceException - DeviceException - IllegalArgumentException -
FelicaException - FelicaException - FelicaException - java.io.InterruptedIOException -
PortBusyException -
java.io.IOException -
public byte[] getIDm()
DeviceException - DeviceException - public byte[] getCardVersion()
具体的には、製造パラメータ(PMm)の前半 2 バイトを返します。
DeviceException - DeviceException - public byte[] getResponseTimeInfo()
具体的には、製造パラメータ(PMm)の後半 6 バイトを返します。
DeviceException - DeviceException - public int getSystemCode()
DeviceException - DeviceException - public int getCard()
DeviceException - DeviceException - public int getTimeout()
DeviceException - DeviceException - public void setTimeout(int timeout)
このオブジェクトの カード処理におけるタイムアウト値を設定します。 ここで設定されたタイムアウト値は、 このオブジェクトに対してだけ有効です。
timeout - タイムアウト値[ms]。
0 以上
60000 以下の値が指定できます
DeviceException - DeviceException - IllegalArgumentException -
public int getNodeCodeLength()
このメソッドの戻り値の意味は以下の通りです。
| 戻り値 | 意味 |
|---|---|
| 2 | 2 バイトノードコード指定パケット |
| 4 | 4 バイトノードコード指定パケット |
このオブジェクトが生成された直後では、デフォルト値として 2 を返します。
DeviceException - DeviceException - public void setNodeCodeLength(int nodeCodeLen)
このメソッドの引数には 2 または 4 のいずれかの数値を指定します。 引数に 2 を指定した場合、 このオブジェクトのカード処理におけるパケット種別として 「2 バイトノードコード指定パケット」が、 4 を指定した場合は「4 バイトノードコード指定パケット」が設定されます。
nodeCodeLen - パケット種別を指定します。
2 または 4 を指定します。
DeviceException - DeviceException - IllegalArgumentException -
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。