|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.docomostar.device.felica.FreeArea
public final class FreeArea
内部カードのフリーエリアにアクセスする手段を提供するクラスです。 フリーエリアアクセスはオフライン処理の一種です。
なお、オンライン処理中においては、オフライン処理を行うことはできません。
すなわち、OnlineFelica.start(String)
を呼び出してから
OnlineFelica.stop()
を呼び出すまでの間に、
このクラスに用意されているメソッドを呼び出すことはできません。
フリーエリアのデータ読み書きメソッド(
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
- DeviceException
- FelicaException
- FelicaException
- isReset()
が true を返す場合)に、
リセットに失敗した場合に発生します。
java.io.InterruptedIOException
-
PortBusyException
-
java.io.IOException
-
public byte[] read(int[] index) throws FelicaException, java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアの データをブロックインデックスを指定して読み込みます。 ブロックインデックスは0から3までの整数値で、4つまで指定できます。 返されるデータの長さは最大64バイトとなります。
index
- ブロックインデックスの配列。
DeviceException
- DeviceException
- NullPointerException
-
IllegalArgumentException
-
IndexOutOfBoundsException
-
FelicaException
- FelicaException
- isReset()
が true を返す場合)に、
リセットに失敗した場合に発生します。
java.io.InterruptedIOException
-
PortBusyException
-
java.io.IOException
-
public void write(byte[] data) throws FelicaException, java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに データを書き込みます。データ長が64バイトに満たない場合はゼロで パディングされます。64バイトを越える場合は切り捨てられます。
data
- フリーエリアデータ。
DeviceException
- DeviceException
- NullPointerException
-
FelicaException
- FelicaException
- isReset()
が true を返す場合)に、
リセットに失敗した場合に発生します。
java.io.InterruptedIOException
-
PortBusyException
-
java.io.IOException
-
public void write(int[] index, byte[] data) throws FelicaException, java.io.IOException
フリー領域を使用するアプリケーションに括り付けられたフリーエリアに ブロックインデックスを指定してデータを書き込みます。 ブロックインデックスは0から3までの整数値で、4つまで指定できます。 指定されたフリーエリアデータの長さが (インデックスの配列の長さ × 16バイト) よりも短い場合、足りない部分はゼロパディングされます。 また、 (インデックスの配列の長さ × 16バイト) バイトを越える部分は無視されます。
index
- ブロックインデックスの配列。data
- フリーエリアデータ。
DeviceException
- DeviceException
- NullPointerException
-
IllegalArgumentException
-
IndexOutOfBoundsException
-
FelicaException
- FelicaException
- isReset()
が true を返す場合)に、
リセットに失敗した場合に発生します。
java.io.InterruptedIOException
-
PortBusyException
-
java.io.IOException
-
public byte[] getIDm() throws FelicaException, java.io.IOException
このメソッドを呼び出すと、フリー領域に対してポーリングを行ない IDm を取得します。 フリー領域へのポーリングに成功し、内部カード内でシステム切り替えが発生すると、 それまで利用していたシステムのPINの解除情報がクリアされます。
DeviceException
- DeviceException
- FelicaException
- java.io.InterruptedIOException
-
PortBusyException
-
java.io.IOException
-
public boolean isReset()
このオブジェクトが生成された直後では、デフォルト値として false を返します。
DeviceException
- DeviceException
- public void setReset(boolean flag)
flag
- リセットを行う場合は true、行わない場合は false を指定します。
DeviceException
- DeviceException
-
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし |