|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.device.felica.OfflineFelica
com.nttdocomo.device.felica.ThruRWOfflineFelica
このクラスのインスタンスの各メソッドは、
Felica.getOfflineFelica(int, int)
の引数で指定されたアクセス先に対して、
それぞれの操作を行います。
インスタンス生成後に、アクセス先を変更する手段は用意されていません。
複数のアクセス先に交互にアクセスする必要がある場合には、
アクセス先ごとに、Felica.getOfflineFelica(int, int)
にて、
対応するインスタンスを取得してください。
ただし、同じカードの 異なるシステムにアクセスを行った時点で、
そのカード内のPINの解除情報がクリアされます。
このオブジェクトが生成された直後では、タイムアウト値としては 1000[ms] が、
リトライ数としては 0 が、
それぞれ設定されています。
タイムアウト値は setTimeout(int)
にて変更可能ですが、
リトライ数を変更することはできません。
なお、オンライン処理中においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String)
を呼び出してから
OnlineFelica.stop()
を呼び出すまでの間に、
このクラスに用意されているメソッドを呼び出すことはできません。
セキュリティ上の制約について
i アプリが起動してから終了するまでの間に、下記の条件を満たした場合には、
その時点でアプリケーションは強制終了されます。
尚、下記に記されている失敗回数は、このクラスのインスタンス毎にカウントされます。
このクラスのインスタンスのいずれか 1 つが下記の条件を満たした時点で強制終了されます。
executePIN(PINParameters)
において、
PIN 指定誤りにより、
PIN の照合、変更、有効/無効化に 4 回失敗した場合
パケット種別について
FeliCa カードで管理されるノードコードが従来の 2 バイト長から 4 バイト長に拡張されました。
これに伴い FeliCa カードに発行するコマンドパケット(ノードコードを含むコマンドに限る)について、
従来構成の「2 バイトノードコード指定パケット」に加えて、
拡張構成の「4 バイトノードコード指定パケット」にて発行することが可能です。
ノードコードを含むコマンドパケットを発行するメソッドは以下の通りです。
checkPIN(CheckPINParameters)
executePIN(PINParameters)
read(ReadParameters)
write(WriteParameters)
getKeyVersion(int)
OfflineFelica.getNodeCodeLength()
が返す値)
に従ってコマンドパケットを発行します。
このオブジェクトが生成された直後では、
パケット種別には「2 バイトノードコード指定パケット」が設定されています。
このオブジェクトに設定されているパケット種別を変更するには
OfflineFelica.setNodeCodeLength(int)
を呼び出して下さい。
また、FeliCa カードに発行するコマンドパケットの種別と、
そのカードに設定されている属性(パケット種別)は一致している必要があることに注意して下さい。
FeliCa カードに対して属性設定を行なうには setParameter(long)
を呼び出して下さい。
なお、FeliCa カードが起動された直後では、カードに設定されている属性(パケット種別)は
「2 バイトノードコード指定パケット」となっています。
Felica.getOfflineFelica(int, int)
フィールドの概要 | |
static int |
BAUDRATE_212_KBPS
無線通信速度の 212kbps を表します(=212)。 |
static int |
BAUDRATE_424_KBPS
無線通信速度の 424kbps を表します(=424)。 |
クラス com.nttdocomo.device.felica.OfflineFelica から継承したフィールド |
CARD_EXTERNAL, CARD_INTERNAL, PARAM_NODE_CODE_LEN_2, PARAM_NODE_CODE_LEN_4 |
メソッドの概要 | |
PINAttributeData[] |
checkPIN(CheckPINParameters param)
PIN の属性参照を行います。 |
void |
executePIN(PINParameters param)
PINを変更、有効/無効化、或いは照合を行います。 |
byte[] |
getContainerIssueInfo()
コンテナ発行情報を取得します。 |
byte[] |
getKeyVersion(int serviceCode)
キーバージョンを取得します。 |
int |
negotiateBaudRate(int baudrate)
外部カードとの間で、無線通信速度のネゴシエーションを行います。 |
FelicaData[] |
read(InputPINParameters pinParam,
ReadParameters readParam)
このクラスのインスタンスに対して呼び出すことはできません。 |
FelicaData[] |
read(ReadParameters param)
ブロックを読み込みます。 |
void |
setParameter(long param)
コマンドパケットで使用する属性を(処理対象カードに)設定します。 |
void |
setTimeout(int timeout)
このオブジェクトのカード処理におけるタイムアウト値を設定します。 |
void |
write(InputPINParameters pinParam,
WriteParameters writeParam)
このクラスのインスタンスに対して呼び出すことはできません。 |
void |
write(WriteParameters param)
ブロックを書き込みます。 |
クラス com.nttdocomo.device.felica.OfflineFelica から継承したメソッド |
getCard, getCardVersion, getIDm, getNodeCodeLength, getResponseTimeInfo, getSystemCode, getTimeout, setNodeCodeLength |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int BAUDRATE_212_KBPS
negotiateBaudRate(int)
,
定数フィールド値public static final int BAUDRATE_424_KBPS
negotiateBaudRate(int)
,
定数フィールド値メソッドの詳細 |
public PINAttributeData[] checkPIN(CheckPINParameters param) throws FelicaException, java.io.IOException
このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。
OfflineFelica
内の checkPIN
param
- PIN属性参照パラメータを指定します。
DeviceException
- FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException
- オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException
- 引数 param に null が指定された場合に発生します。
IllegalArgumentException
- 引数 param に登録パラメータ数
(OfflineParameters.getSize()
が返す値)
が0個の読み込みパラメータが指定された場合に発生します。
IllegalArgumentException
- このオブジェクトに設定されているコマンドパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 param に登録されているパラメータに
2 バイト長では表せないサービスコード(負の値、または 216 以上の値)
が含まれていた場合に発生します。
FelicaException
- 搬送波受信中のために、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_DEVICE_ERROR)。
FelicaException
- レスポンスタイムアウトにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException
- レスポンスデータのフォーマットが正しくないことにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_FORMAT_ERROR)。
FelicaException
- 外部カードがエラー情報を返したことにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_EXTERNAL_CARD_ERROR)。
FelicaException
- 外部カードからのレスポンスデータの長さが上限を超えていたことにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException
- PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException
- FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException
- ポートビジーエラーが発生した場合に発生します。
java.io.IOException
- 入出力エラーが発生した場合に発生します。public void executePIN(PINParameters param) throws FelicaException, java.io.IOException
このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。 また、複数の PIN サービスへの PIN 処理を行う場合に、 そのうち 1 つでも PIN 処理に失敗した場合の振る舞いは、 外部カードのマニュアルを参照してください。 また、このオブジェクトのアクセス先がフリーエリアである場合は、 以下の記述を参照してください。
外部カードのフリーエリアにアクセスする場合、PIN照合は可能ですが、
PIN変更、有効/無効化は不可とします。
従って、このオブジェクトのアクセス先がフリーエリアである場合に、
引数 param に ChangePINParameters
または EnablePINParameters
クラスのオブジェクトを指定すると例外が発生します。
OfflineFelica
内の executePIN
param
-