|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Objectcom.nttdocomo.device.felica.OfflineFelica
フリーエリアアクセスを除くオフライン処理によって、 FeliCa にアクセスする手段を提供するクラスです。
このクラスのインスタンスの各メソッドは、
Felica.getOfflineFelica(int, int)
の引数で指定されたアクセス先に対して、それぞれの操作を行います。
インスタンス生成後に、アクセス先を変更する手段は用意されていません。
複数のアクセス先に交互にアクセスする必要がある場合には、
アクセス先ごとに、Felica.getOfflineFelica(int, int) にて、
対応するインスタンスを取得してください。
ただし、同じカードの
異なるシステムにアクセスを行った時点で、
そのカード内のPINの解除情報がクリアされます。
setTimeout(int) にて変更可能ですが、リトライ数を変更することはできません。
なお、オンライン処理中や 外部 R/W からのアクセス待ち状態下においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String) を呼び出してから
OnlineFelica.stop() を呼び出すまでの間や、
Felica.activate() を呼び出してから
Felica.inactivate()、
Felica.close() を呼び出すまでの間には、
このクラスに用意されているメソッドを呼び出すことはできません。
セキュリティ上の制約について
iアプリが起動してから終了するまでの間に、下記の条件を満たした場合には、
その時点でアプリケーションは強制終了されます。
尚、下記に記されている失敗回数は、
このクラスの全インスタンスによる失敗回数の合計です。
executePIN(PINParameters) において、
PIN指定誤りにより、
PINの照合、変更、有効/無効化に4回失敗した場合
Felica.getOfflineFelica(int, int)| フィールドの概要 | |
static int |
CARD_EXTERNAL
外部カードを表します(=1)。 |
static int |
CARD_INTERNAL
内部カードを表します(=0)。 |
| メソッドの概要 | |
void |
executePIN(PINParameters param)
PINを変更、有効/無効化、或いは照合を行います。 |
int |
getCard()
このオブジェクトの処理対象カードを取得します。 |
byte[] |
getCardVersion()
このオブジェクトがアクセス先として保持しているカードのバージョンを返します。 |
byte[] |
getIDm()
このオブジェクトがアクセス先として保持しているIDmを返します。 |
byte[] |
getKeyVersion(int serviceCode)
キーバージョンを取得します。 |
int |
getSystemCode()
このオブジェクトがアクセス先として保持している システムコードを取得します。 |
int |
getTimeout()
タイムアウト値を取得します。 |
FelicaData[] |
read(ReadParameters param)
ブロックを読み込みます。 |
void |
setTimeout(int timeout)
このオブジェクトの カード処理におけるタイムアウト値を設定します。 |
void |
write(WriteParameters param)
ブロックを書き込みます。 |
| クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static final int CARD_INTERNAL
public static final int CARD_EXTERNAL
| メソッドの詳細 |
public void executePIN(PINParameters param)
throws FelicaException,
java.io.IOException
PINを変更、有効/無効化、或いは照合を行います。 PINの変更、有効/無効化、照合は内部カードに対してのみ行うことが出来ます。
引数 param に複数のパラメータが登録されおり、かつ、 それらのパラメータのうち1つでもPIN処理に失敗した場合は、 param の実行時の型により以下のよう振る舞います。
InputPINParameters の場合:
ChangePINParametersや、EnablePINParameters の場合:
なお、 PINParametersに登録されているパラメータ数が 対象カードの同時 書き込み 上限数を超えていた場合においては、 引数 param の実行時の型にかかわらず、 全てのパラメータのPIN処理は行われません。
param - PINパラメータ。PINParametesのいずれかのサブクラスです。
IllegalStateException -
このオブジェクトが外部カードを指定して取得したものである場合に発生します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が 0 個の PIN パラメータが指定された場合に発生します。
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カードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public FelicaData[] read(ReadParameters param)
throws FelicaException,
java.io.IOException
ブロックを読み込みます。
このメソッドによる読み込み処理は同時性が確保されます。 従って、ReadParametersに登録されているパラメータのうち1つでも読み込みに失敗した場合は、 全てのパラメータの読み込みは行われません。
ReadParametersに登録されているパラメータ数が 対象カードの同時読み込み上限数を超えていた場合、 全てのパラメータの読み込みは行われません。
param - 読み込みパラメータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が0個の読み込みパラメータが指定された場合に発生します。
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カードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public void write(WriteParameters param)
throws FelicaException,
java.io.IOException
ブロックを書き込みます。
このメソッドによる書き込み処理は同時性が確保されます。 従って、WriteParametersに登録されているパラメータのうち1つでも書き込みに失敗した場合は、 全てのパラメータの書き込みは行われません。
WriteParametersに登録されているパラメータ数が 対象カードの同時書き込み上限数を超えていた場合、 全てのパラメータの書き込みは行われません。
param - 書き込みパラメータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数
(OfflineParameters.getSize() が返す値)
が 0 個の書き込みパラメータが指定された場合に発生します。
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カードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public byte[] getKeyVersion(int serviceCode)
throws FelicaException,
java.io.IOException
キーバージョンを取得します。
このメソッドの引数に 216 - 1 (0xffff) を指定した場合、 このオブジェクトがアクセス先として保持しているシステムのキーバージョンが返ります。
serviceCode - サービスコード。
0 以上 216 - 1 以下の値が指定できます。
216 -1 (0xffff) を除いて、
属性部分には、エリアを表す属性値またはサービスを表す属性値が指定できます。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 serviceCode に負の値、
または 216 以上の値が指定された場合に発生します。
IllegalArgumentException - 引数 serviceCode の属性部分の値が、エリアを表す属性値、
サービスを表す属性値のいずれでもない場合に発生します。
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カードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。public byte[] getIDm()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
public byte[] getCardVersion()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
public int getSystemCode()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
public int getCard()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
public int getTimeout()
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
public void setTimeout(int timeout)
このオブジェクトの カード処理におけるタイムアウト値を設定します。 ここで設定されたタイムアウト値は、 このオブジェクトに対してだけ有効です。
timeout - タイムアウト値[ms]。
0 以上
60000 以下の値が指定できます
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 timeout に負の値、
または 60000
より大きい値が指定された場合に発生します。
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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ドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。