|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Objectcom.nttdocomo.device.felica.FreeArea
内部カードのフリーエリアにアクセスする手段を提供するクラスです。 フリーエリアアクセスはオフライン処理の一種です。
[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() を呼び出すまでの間に、
このクラスに用意されているメソッドを呼び出すことはできません。
[DoJa-5.0 (903i) 以降]
[DoJa-5.0 (903i) 以降]
フリーエリアのデータ読み書きメソッド(
read(),
read(int[]),
write(byte[]),
write(int[], byte[]))呼び出しの過程で、
内部カードに対して「コマンドパケットで使用する属性」の「パケット種別」として
「2 バイトノードコード指定パケット」を設定します。
その結果、OfflineFelica.setParameter(long)
で設定した属性値が変更される可能性がありますので注意してください。
これらのメソッド呼び出しで例外が発生した場合でも同様です。
フリーエリアのデータ読み書き後にリセットを行うかどうかを
setReset(boolean) にて指定できます。
リセットは PIN 解除情報をクリアするために行います。
デフォルトではリセットは行いません。
フリーエリアのデータ読み書きメソッド(
read(),
read(int[]),
write(byte[]),
write(int[], byte[]))は、
呼び出された時点で isReset() が true を返す場合は、
データを読み/書きした後にリセットを行います。
ただし、これらのメソッドはリセット前の処理が途中で失敗した場合は、
その時点で処理を中断し例外をスローします。
Felica.getFreeArea()| メソッドの概要 | |
byte[] |
getIDm()
フリー領域のIDmを返します。 |
boolean |
isReset()
フリーエリアへの読み/書き込み後にリセットを行うかどうかを返します。 |
byte[] |
read()
フリー領域を使用するアプリケーションに括り付けられた フリーエリアのデータを読み込みます。 |
byte[] |
read(int[] index)
フリー領域を使用するアプリケーションに括り付けられたフリーエリアの データをブロックインデックスを指定して読み込みます。 |
void |
setReset(boolean flag)
フリーエリアへの読み/書き込み後にリセットを行うかどうかを設定します。 |
void |
write(byte[] data)
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに データを書き込みます。 |
void |
write(int[] index,
byte[] data)
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに ブロックインデックスを指定してデータを書き込みます。 |
| クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| メソッドの詳細 |
public byte[] read()
throws FelicaException,
java.io.IOException
フリー領域を使用するアプリケーションに括り付けられた フリーエリアのデータを読み込みます。 返されるデータの長さは64バイトとなります。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
FelicaException - Free Areaの読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_FREEAREA_READ_ERROR)。
FelicaException - [DoJa-5.0 (903i) 以降]
リセットを行う場合(isReset() が true を返す場合)に、
リセットに失敗した場合に発生します
(ID_READ_ERROR, TYPE_FREEAREA_RESET_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public byte[] read(int[] index)
throws FelicaException,
java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアの データをブロックインデックスを指定して読み込みます。 ブロックインデックスは0から3までの整数値で、4つまで指定できます。 返されるデータの長さは最大64バイトとなります。
index - ブロックインデックスの配列。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 index に null が指定された場合に発生します。
IllegalArgumentException - 引数 index に長さが 0、または 4
より大きいブロックインデックスの配列が指定された場合に発生します。
IndexOutOfBoundsException - 引数 index に 0〜3 以外の要素を含むブロックインデックスの配列が指定された場合に発生します。
FelicaException - Free Areaの読み出しに失敗した場合に発生します
(ID_READ_ERROR, TYPE_FREEAREA_READ_ERROR)。
FelicaException - [DoJa-5.0 (903i) 以降]
リセットを行う場合(isReset() が true を返す場合)に、
リセットに失敗した場合に発生します
(ID_READ_ERROR, TYPE_FREEAREA_RESET_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public void write(byte[] data)
throws FelicaException,
java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに データを書き込みます。データ長が64バイトに満たない場合はゼロで パディングされます。64バイトを越える場合は切り捨てられます。
data - フリーエリアデータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 data に null が指定された場合に発生します。
FelicaException - Free Areaの書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_FREEAREA_WRITE_ERROR)。
FelicaException - [DoJa-5.0 (903i) 以降]
リセットを行う場合(isReset() が true を返す場合)に、
リセットに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_FREEAREA_RESET_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public void write(int[] index,
byte[] data)
throws FelicaException,
java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに ブロックインデックスを指定してデータを書き込みます。 ブロックインデックスは0から3までの整数値で、4つまで指定できます。 指定されたフリーエリアデータの長さが (インデックスの配列の長さ × 16バイト) よりも短い場合、足りない部分はゼロパディングされます。 また、 (インデックスの配列の長さ × 16バイト) バイトを越える部分は無視されます。
index - ブロックインデックスの配列。data - フリーエリアデータ。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-4.1 (902iS) まで]
オンライン処理が既に開始されている場合や、
外部 R/W からのアクセス待ち状態下の場合に発生します(ILLEGAL_STATE)。
DeviceException - [DoJa-5.0 (903i) 以降]
オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 index または data に null が指定された場合に発生します。
IllegalArgumentException - 引数 index に長さが 0 、または 4
より大きいブロックインデックスの配列が指定された場合に発生します。
IndexOutOfBoundsException - 引数 index に 0〜3 以外の要素を含むブロックインデックスの配列が指定された場合に発生します。
FelicaException - Free Areaの書き込みに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_FREEAREA_WRITE_ERROR)。
FelicaException - [DoJa-5.0 (903i) 以降]
リセットを行う場合(isReset() が true を返す場合)に、
リセットに失敗した場合に発生します
(ID_WRITE_ERROR, TYPE_FREEAREA_RESET_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - [DoJa-5.0 (903i) 以降]
ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。
public byte[] getIDm()
throws FelicaException,
java.io.IOException
このメソッドを呼び出すと、フリー領域に対してポーリングを行ない IDm を取得します。 フリー領域へのポーリングに成功し、内部カード内でシステム切り替えが発生すると、 それまで利用していたシステムのPINの解除情報がクリアされます。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
FelicaException - Free Areaのポーリングに失敗した場合に発生します
(ID_POLLING_ERROR, TYPE_FREEAREA_POLLING_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、
サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。public boolean isReset()
このオブジェクトが生成された直後では、デフォルト値として false を返します。
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。