Objectcom.nttdocomo.device.felica.OfflineFelica
オフライン処理(有線カード機能)によって、 内部カードにアクセスする手段を提供するクラスです。 ただし、フリーエリアへのアクセスは除きます。
このクラスのインスタンスの各メソッドは、
Felica.getOfflineFelica(int, int)
の引数で指定されたアクセス先に対して、それぞれの操作を行います。
インスタンス生成後に、アクセス先を変更する手段は用意されていません。
複数のアクセス先に交互にアクセスする必要がある場合には、
アクセス先ごとに、Felica.getOfflineFelica(int, int) にて、
対応するインスタンスを取得してください。
ただし、同じカードの
異なるシステムにアクセスを行った時点で、
そのカード内のPINの解除情報がクリアされます。
このオブジェクトが生成された直後では、タイムアウト値としては
500[ms]
が、
リトライ数としては 0 が、
それぞれ設定されています。
タイムアウト値は setTimeout(int) にて変更可能ですが、リトライ数を変更することはできません。
[DoJa-4.1 (902iS) まで]
なお、オンライン処理中や 外部 R/W からのアクセス待ち状態下においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String) を呼び出してから
OnlineFelica.stop() を呼び出すまでの間や、
Felica.activate() を呼び出してから
Felica.inactivate()、
Felica.close() を呼び出すまでの間には、
このクラスに用意されているメソッドを呼び出すことはできません。
[DoJa-5.0 (903i) 以降]
なお、オンライン処理中においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String) を呼び出してから
OnlineFelica.stop() を呼び出すまでの間に、
このクラスに用意されているメソッドを呼び出すことはできません。
セキュリティ上の制約について
iアプリが起動してから終了するまでの間に、下記の条件を満たした場合には、
その時点でアプリケーションは強制終了されます。
[DoJa-4.1 (902iS) まで]
尚、下記に記されている失敗回数は、
このクラスの全インスタンスによる失敗回数の合計です。
executePIN(PINParameters) において、
PIN指定誤りにより、
PINの照合、変更、有効/無効化に4回失敗した場合
パケット種別について ([DoJa-5.0 (903i) 以降])
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 - 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_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 引数 param に含まれているパラメータの数が、
対象カードの同時読み込み上限数を超えていた場合に発生します
(ID_CHECKPIN_ERROR, TYPE_BLOCK_COUNT_OVER_ERROR)。
FelicaException - 指定されたサービスが存在しないことにより、
PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_SERVICE_CODE_ERROR)。
FelicaException - PIN 属性参照に失敗した場合に発生します
(ID_CHECKPIN_ERROR, TYPE_UNDEFINED_ERROR)。
親エリアの PIN 未照合により、PIN 属性参照に失敗した場合にも発生します。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public void executePIN(PINParameters param)
throws FelicaException,
java.io.IOException
PINを変更、有効/無効化、或いは照合を行います。
引数 param に複数のパラメータが登録されおり、かつ、 それらのパラメータのうち1つでもPIN処理に失敗した場合は、 param の実行時の型により以下のよう振る舞います。
InputPINParameters の場合:
ChangePINParametersや、EnablePINParameters の場合:
なお、 PINParametersに登録されているパラメータ数が 対象カードの同時 書き込み 上限数を超えていた場合においては、 引数 param の実行時の型にかかわらず、 全てのパラメータのPIN処理は行われません。
[DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
PINParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - PINパラメータ。PINParametesのいずれかのサブクラスです。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が 0 個の PIN パラメータが指定された場合に発生します。
IllegalArgumentException - [DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているコマンドパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 param に登録されているパラメータに
2 バイト長では表せないサービスコード(負の値、または 216 以上の値)
が含まれていた場合に発生します。
IllegalArgumentException - コマンドデータの長さが上限を超える場合に発生します。
FelicaException - レスポンスタイムアウトにより、
PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 引数 param に含まれているパラメータの数が、
対象カードの同時書き込み上限数を超えていた場合に発生します
(ID_EXECUTEPIN_ERROR,
TYPE_BLOCK_COUNT_OVER_ERROR)。
FelicaException -
指定されたサービスが存在しないことにより、
PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_SERVICE_CODE_ERROR)。
FelicaException - 親エリアのPIN未照合により、PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_PIN_REQUIRED_ERROR)。
FelicaException - PINの同時解除数が上限を超えたことにより、
PIN照合に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_PIN_COUNT_OVER_ERROR)。
FelicaException - PINの照合試行回数が上限に達していることにより、PIN照合、変更、
有効/無効化に失敗した場合に発生します。
(ID_EXECUTEPIN_ERROR, TYPE_PIN_LOCK_OUT_ERROR)。
FelicaException - PINの照合失敗により、
PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_SETPIN_ERROR)。
FelicaException - PINの有効/無効の切り替え不可により、
有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_SETATTRIBUTE_ERROR)。
FelicaException - PIN照合、変更、有効/無効化に失敗した場合に発生します
(ID_EXECUTEPIN_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public FelicaData[] read(ReadParameters param)
throws FelicaException,
java.io.IOException
ブロックを読み込みます。
このメソッドによる読み込み処理は同時性が確保されます。 従って、ReadParametersに登録されているパラメータのうち1つでも読み込みに失敗した場合は、 全てのパラメータの読み込みは行われません。
ReadParametersに登録されているパラメータ数が 対象カードの同時読み込み上限数を超えていた場合、 全てのパラメータの読み込みは行われません。
[DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
ReadParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - 読み込みパラメータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が0個の読み込みパラメータが指定された場合に発生します。
IllegalArgumentException - [DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているコマンドパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 param に登録されているパラメータに
2 バイト長では表せないサービスコード(負の値、または 216 以上の値)
が含まれていた場合に発生します。
FelicaException - レスポンスタイムアウトにより、
読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_FORMAT_ERROR)。
FelicaException -
引数 param に含まれているパラメータの数が、
対象カードの同時読み込み上限数を超えていた場合に発生します
(ID_READ_ERROR, TYPE_BLOCK_COUNT_OVER_ERROR)。
FelicaException -
指定されたサービスが存在しないことにより、
読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_SERVICE_CODE_ERROR)。
FelicaException - ブロックナンバーの指定不正により、読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_BLOCK_NO_ERROR)。
FelicaException - PIN未照合により、読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_PIN_REQUIRED_ERROR)。
FelicaException - 読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
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 - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 pinParam または readParam に null が指定された場合に発生します。
IllegalArgumentException - 引数 pinParam について、
executePIN(pinParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
IllegalArgumentException - 引数 readParam について、
read(readParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
FelicaException - executePIN(pinParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_EXECUTEPIN_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - read(readParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_READ_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - Felica.reset()
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_RESET_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public void write(WriteParameters param)
throws FelicaException,
java.io.IOException
ブロックを書き込みます。
このメソッドによる書き込み処理は同時性が確保されます。 従って、WriteParametersに登録されているパラメータのうち1つでも書き込みに失敗した場合は、 全てのパラメータの書き込みは行われません。
WriteParametersに登録されているパラメータ数が 対象カードの同時書き込み上限数を超えていた場合、 全てのパラメータの書き込みは行われません。
[DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
WriteParameters に登録されているパラメータに
2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。
param - 書き込みパラメータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が 0 個の書き込みパラメータが指定された場合に発生します。
IllegalArgumentException - [DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているコマンドパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 param に登録されているパラメータに
2 バイト長では表せないサービスコード(負の値、または 216 以上の値)
が含まれていた場合に発生します。
IllegalArgumentException - コマンドデータの長さが上限を超える場合に発生します。
FelicaException - レスポンスタイムアウトにより、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_FORMAT_ERROR)。
FelicaException -
引数 param に含まれているパラメータの数が、
対象カードの同時書き込み上限数を超えていた場合に発生します
(ID_WRITE_ERROR, TYPE_BLOCK_COUNT_OVER_ERROR)。
FelicaException -
指定されたサービスが存在しないことにより、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_SERVICE_CODE_ERROR)。
FelicaException - ブロックナンバーの指定不正により、書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_BLOCK_NO_ERROR)。
FelicaException - PIN未照合により、書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_PIN_REQUIRED_ERROR)。
FelicaException - デクリメントでのパースバリュー不足、
あるいはキャッシュバックでのパースバリューのオーバーフローにより、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_PURSE_ERROR)。
FelicaException - キャッシュバック値が直前のデクリメント値より大きいことにより、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_CASHBACK_ERROR)。
FelicaException - サイクリック連続書き込みブロック数過大により、
書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_CYCLIC_ERROR)。
FelicaException - 書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
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 - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 pinParam または writeParam に null が指定された場合に発生します。
IllegalArgumentException - 引数 pinParam について、
executePIN(pinParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
IllegalArgumentException - 引数 writeParam について、
write(writeParam)
と同等の引数チェックにより IllegalArgumentException が発生する場合に、
そのままスローされます。
FelicaException - executePIN(pinParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_EXECUTEPIN_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - write(writeParam)
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_WRITE_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
FelicaException - Felica.reset()
と同等の処理により FelicaException が発生する場合に、
そのままスローされます
(ID_RESET_ERROR)。
エラー内容(TYPE)はそのまま素通しされます。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public byte[] getKeyVersion(int serviceCode)
throws FelicaException,
java.io.IOException
キーバージョンを取得します。
このメソッドの引数に
0xffff または 0xffffffff を指定した場合、
このオブジェクトがアクセス先として保持しているシステムのキーバージョンが返ります。
[DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているパケット種別
(getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。
ただし、このオブジェクトに設定されているパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 serviceCode に
2 バイト長では表せないサービスコードが指定された場合は例外が発生します。
serviceCode - サービスコード。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - [DoJa-4.1 (902iS) まで]
引数 serviceCode に負の値、
または 216 以上の値が指定された場合に発生します。
IllegalArgumentException - 引数 serviceCode の属性部分の値が、エリアを表す属性値、
サービスを表す属性値のいずれでもない場合に発生します。
IllegalArgumentException - [DoJa-5.0 (903i) 以降]
このオブジェクトに設定されているコマンドパケット種別が
「2 バイトノードコード指定パケット」であるにも関わらず、
引数 serviceCode に
2 バイト長では表せないサービスコード(負の値、または 216 以上の値)
が指定された場合に発生します。
FelicaException - レスポンスタイムアウトにより、
取得に失敗した場合に発生します
(ID_GETKEYVERSION_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
取得に失敗した場合に発生します
(ID_GETKEYVERSION_ERROR, TYPE_FORMAT_ERROR)。
FelicaException -
指定されたサービスが存在しないことにより、
取得に失敗した場合に発生します
(ID_GETKEYVERSION_ERROR, TYPE_SERVICE_CODE_ERROR)。
FelicaException - 取得に失敗した場合に発生します
(ID_GETKEYVERSION_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public byte[] getContainerIssueInfo()
throws FelicaException,
java.io.IOException
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
FelicaException - レスポンスタイムアウトにより、
取得に失敗した場合に発生します
(ID_GETISSUEINFO_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
取得に失敗した場合に発生します
(ID_GETISSUEINFO_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 取得に失敗した場合に発生します
(ID_GETISSUEINFO_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
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 - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 param に不正な属性値が指定された場合に発生します。
FelicaException - レスポンスタイムアウトにより、
属性指定に失敗した場合に発生します
(ID_SETPARAMETER_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、
属性指定に失敗した場合に発生します
(ID_SETPARAMETER_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 属性指定に失敗した場合に発生します
(ID_SETPARAMETER_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。public byte[] getIDm()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public byte[] getCardVersion()
具体的には、製造パラメータ(PMm)の前半 2 バイトを返します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public byte[] getResponseTimeInfo()
具体的には、製造パラメータ(PMm)の後半 6 バイトを返します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public int getSystemCode()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public int getCard()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public int getTimeout()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public void setTimeout(int timeout)
このオブジェクトの カード処理におけるタイムアウト値を設定します。 ここで設定されたタイムアウト値は、 このオブジェクトに対してだけ有効です。
timeout - タイムアウト値[ms]。
0 以上
60000 以下の値が指定できます
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで] オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 timeout に負の値、
または 60000
より大きい値が指定された場合に発生します。
public int getNodeCodeLength()
このメソッドの戻り値の意味は以下の通りです。
| 戻り値 | 意味 |
|---|---|
| 2 | 2 バイトノードコード指定パケット |
| 4 | 4 バイトノードコード指定パケット |
このオブジェクトが生成された直後では、デフォルト値として 2 を返します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
public void setNodeCodeLength(int nodeCodeLen)
このメソッドの引数には 2 または 4 のいずれかの数値を指定します。 引数に 2 を指定した場合、 このオブジェクトのカード処理におけるパケット種別として 「2 バイトノードコード指定パケット」が、 4 を指定した場合は「4 バイトノードコード指定パケット」が設定されます。
nodeCodeLen - パケット種別を指定します。
2 または 4 を指定します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 nodeCodeLen に 不正な値が指定された場合に発生します。