com.nttdocomo.device.felica
クラス ThruRWOfflineFelica

Object
  拡張com.nttdocomo.device.felica.OfflineFelica
      拡張com.nttdocomo.device.felica.ThruRWOfflineFelica

public final class ThruRWOfflineFelica
extends OfflineFelica
 [iアプリオプションAPI]

オフライン処理(Thru R/W 機能)によって、 外部カードにアクセスする手段を提供するクラスです。 外部カードのフリーエリアへのアクセスも可能です。

このクラスのインスタンスの各メソッドは、 Felica.getOfflineFelica(int, int) の引数で指定されたアクセス先に対して、 それぞれの操作を行います。 インスタンス生成後に、アクセス先を変更する手段は用意されていません。 複数のアクセス先に交互にアクセスする必要がある場合には、 アクセス先ごとに、Felica.getOfflineFelica(int, int) にて、 対応するインスタンスを取得してください。 ただし、同じカードの 異なるシステムにアクセスを行った時点で、 そのカード内のPINの解除情報がクリアされます。

このオブジェクトが生成された直後では、タイムアウト値としては 1000[ms] が、 リトライ数としては 0 が、 それぞれ設定されています。 タイムアウト値は setTimeout(int) にて変更可能ですが、 リトライ数を変更することはできません。

なお、オンライン処理中においては、オフライン処理を行うことはできません。 すなわち、OnlineFelica.start(String) を呼び出してから OnlineFelica.stop() を呼び出すまでの間に、 このクラスに用意されているメソッドを呼び出すことはできません。

セキュリティ上の制約について
i アプリが起動してから終了するまでの間に、下記の条件を満たした場合には、 その時点でアプリケーションは強制終了されます。 尚、下記に記されている失敗回数は、このクラスのインスタンス毎にカウントされます。 このクラスのインスタンスのいずれか 1 つが下記の条件を満たした時点で強制終了されます。

パケット種別について
FeliCa カードで管理されるノードコードが従来の 2 バイト長から 4 バイト長に拡張されました。 これに伴い FeliCa カードに発行するコマンドパケット(ノードコードを含むコマンドに限る)について、 従来構成の「2 バイトノードコード指定パケット」に加えて、 拡張構成の「4 バイトノードコード指定パケット」にて発行することが可能です。 ノードコードを含むコマンドパケットを発行するメソッドは以下の通りです。

これらのメソッドは、このオブジェクトに設定されているパケット種別 (OfflineFelica.getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。 このオブジェクトが生成された直後では、 パケット種別には「2 バイトノードコード指定パケット」が設定されています。 このオブジェクトに設定されているパケット種別を変更するには OfflineFelica.setNodeCodeLength(int) を呼び出して下さい。

また、FeliCa カードに発行するコマンドパケットの種別と、 そのカードに設定されている属性(パケット種別)は一致している必要があることに注意して下さい。 FeliCa カードに対して属性設定を行なうには setParameter(long) を呼び出して下さい。 なお、FeliCa カードが起動された直後では、カードに設定されている属性(パケット種別)は 「2 バイトノードコード指定パケット」となっています。

導入されたバージョン:
DoJa-5.0 (903i)
関連項目:
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
 

フィールドの詳細

BAUDRATE_212_KBPS

public static final int BAUDRATE_212_KBPS
無線通信速度の 212kbps を表します(=212)。

関連項目:
negotiateBaudRate(int), 定数フィールド値

BAUDRATE_424_KBPS

public static final int BAUDRATE_424_KBPS
無線通信速度の 424kbps を表します(=424)。

関連項目:
negotiateBaudRate(int), 定数フィールド値
メソッドの詳細

checkPIN

public PINAttributeData[] checkPIN(CheckPINParameters param)
                            throws FelicaException,
                                   java.io.IOException
PIN の属性参照を行います。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。

オーバーライド:
クラス OfflineFelica 内の checkPIN
パラメータ:
param - PIN属性参照パラメータを指定します。
戻り値:
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 - 入出力エラーが発生した場合に発生します。

executePIN

public void executePIN(PINParameters param)
                throws FelicaException,
                       java.io.IOException
PINを変更、有効/無効化、或いは照合を行います。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。 また、複数の PIN サービスへの PIN 処理を行う場合に、 そのうち 1 つでも PIN 処理に失敗した場合の振る舞いは、 外部カードのマニュアルを参照してください。 また、このオブジェクトのアクセス先がフリーエリアである場合は、 以下の記述を参照してください。

外部カードのフリーエリアにアクセスする場合、PIN照合は可能ですが、 PIN変更、有効/無効化は不可とします。 従って、このオブジェクトのアクセス先がフリーエリアである場合に、 引数 param に ChangePINParameters または EnablePINParameters クラスのオブジェクトを指定すると例外が発生します。

オーバーライド:
クラス OfflineFelica 内の executePIN
パラメータ:
param - PINパラメータ。PINParametesのいずれかのサブクラスです。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - このオブジェクトのアクセス先がフリーエリアである場合に、 引数 param の実行時の型が ChengePINParameters または EnablePINParameters クラスである場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数 (OfflineParameters.getSize() が返す値) が 0 個の PIN パラメータが指定された場合に発生します。
IllegalArgumentException - このオブジェクトに設定されているコマンドパケット種別が 「2 バイトノードコード指定パケット」であるにも関わらず、 引数 param に登録されているパラメータに 2 バイト長では表せないサービスコード(負の値、または 216 以上の値) が含まれていた場合に発生します。
IllegalArgumentException - コマンドデータの長さが上限を超える場合に発生します。
FelicaException - 搬送波受信中のために、 PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードがエラー情報を返したことにより、 PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_EXTERNAL_CARD_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - PIN照合、変更、有効/無効化に失敗した場合に発生します (ID_EXECUTEPIN_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

read

public FelicaData[] read(ReadParameters param)
                  throws FelicaException,
                         java.io.IOException
ブロックを読み込みます。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。

オーバーライド:
クラス OfflineFelica 内の read
パラメータ:
param - 読み込みパラメータ。
戻り値:
ブロックデータリスト。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数 (OfflineParameters.getSize() が返す値) が0個の読み込みパラメータが指定された場合に発生します。
IllegalArgumentException - このオブジェクトに設定されているコマンドパケット種別が 「2 バイトノードコード指定パケット」であるにも関わらず、 引数 param に登録されているパラメータに 2 バイト長では表せないサービスコード(負の値、または 216 以上の値) が含まれていた場合に発生します。
FelicaException - 搬送波受信中のために、 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードがエラー情報を返したことにより、 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_EXTERNAL_CARD_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 読み出しに失敗した場合に発生します (ID_READ_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

read

public FelicaData[] read(InputPINParameters pinParam,
                         ReadParameters readParam)
このクラスのインスタンスに対して呼び出すことはできません。 このメソッドを呼び出すと、常に例外 UnsupportedOperationException が発生します。

オーバーライド:
クラス OfflineFelica 内の read
パラメータ:
pinParam - 指定に意味を持ちません。
readParam - 指定に意味を持ちません。
戻り値:
常に例外が発生するため、戻り値が返ることはありません。
例外:
UnsupportedOperationException - このメソッドが呼ばれた場合に発生します。

write

public void write(WriteParameters param)
           throws FelicaException,
                  java.io.IOException
ブロックを書き込みます。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。

オーバーライド:
クラス OfflineFelica 内の write
パラメータ:
param - 書き込みパラメータ。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
NullPointerException - 引数 param に null が指定された場合に発生します。
IllegalArgumentException - 引数 param に登録パラメータ数 (OfflineParameters.getSize() が返す値) が 0 個の書き込みパラメータが指定された場合に発生します。
IllegalArgumentException - このオブジェクトに設定されているコマンドパケット種別が 「2 バイトノードコード指定パケット」であるにも関わらず、 引数 param に登録されているパラメータに 2 バイト長では表せないサービスコード(負の値、または 216 以上の値) が含まれていた場合に発生します。
IllegalArgumentException - コマンドデータの長さが上限を超える場合に発生します。
FelicaException - 搬送波受信中のために、 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードがエラー情報を返したことにより、 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_EXTERNAL_CARD_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 書き込みに失敗した場合に発生します (ID_WRITE_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

write

public void write(InputPINParameters pinParam,
                  WriteParameters writeParam)
このクラスのインスタンスに対して呼び出すことはできません。 このメソッドを呼び出すと、常に例外 UnsupportedOperationException が発生します。

オーバーライド:
クラス OfflineFelica 内の write
パラメータ:
pinParam - 指定に意味を持ちません。
writeParam - 指定に意味を持ちません。
例外:
UnsupportedOperationException - このメソッドが呼ばれた場合に発生します。

getKeyVersion

public byte[] getKeyVersion(int serviceCode)
                     throws FelicaException,
                            java.io.IOException
キーバージョンを取得します。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。 また、外部カードに指定されたサービスが存在しない場合は、 例外発生ではなく、戻り値として 0xffff を返します。

オーバーライド:
クラス OfflineFelica 内の getKeyVersion
パラメータ:
serviceCode - サービスコード。 全ての範囲の値が指定できます。0xffff または 0xffffffff を除いて、 属性部分には、エリアを表す属性値またはサービスを表す属性値が指定できます。
戻り値:
キーバージョン(2バイト)を返します。 指定されたサービスが存在しない場合は 0xffff を返します。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 serviceCode の属性部分の値が、エリアを表す属性値、 サービスを表す属性値のいずれでもない場合に発生します。
IllegalArgumentException - このオブジェクトに設定されているコマンドパケット種別が 「2 バイトノードコード指定パケット」であるにも関わらず、 引数 serviceCode に 2 バイト長では表せないサービスコード(負の値、または 216 以上の値) が指定された場合に発生します。
FelicaException - 搬送波受信中のために、 取得に失敗した場合に発生します (ID_GETKEYVERSION_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 取得に失敗した場合に発生します (ID_GETKEYVERSION_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 取得に失敗した場合に発生します (ID_GETKEYVERSION_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 取得に失敗した場合に発生します (ID_GETKEYVERSION_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 取得に失敗した場合に発生します (ID_GETKEYVERSION_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

getContainerIssueInfo

public byte[] getContainerIssueInfo()
                             throws FelicaException,
                                    java.io.IOException
コンテナ発行情報を取得します。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、発生する例外についてはこちらを参照してください。

オーバーライド:
クラス OfflineFelica 内の getContainerIssueInfo
戻り値:
コンテナ発行情報(16byte)を返します。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
FelicaException - 搬送波受信中のために、 取得に失敗した場合に発生します (ID_GETISSUEINFO_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 取得に失敗した場合に発生します (ID_GETISSUEINFO_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 取得に失敗した場合に発生します (ID_GETISSUEINFO_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 取得に失敗した場合に発生します (ID_GETISSUEINFO_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 取得に失敗した場合に発生します (ID_GETISSUEINFO_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

setParameter

public void setParameter(long param)
                  throws FelicaException,
                         java.io.IOException
コマンドパケットで使用する属性を(処理対象カードに)設定します。

このメソッドの振る舞いの詳細は、スーパークラスの同名メソッドの説明を参照して下さい。 ただし、スーパークラスとは異なり、このクラスでは外部カードに対してアクセスします。 従って、属性値が変更される可能性について、および、 発生する例外についてはこちらを参照してください。

このメソッドで設定した属性値は、 以下のメソッドを呼び出すことで変更される可能性があることに注意して下さい。 これは、このメソッドにて発行される属性設定コマンドの効果が、 外部カード全体(そのカードの全システム)に有効であるためです。

  • このオブジェクトと同じカードをアクセス先としている他オブジェクトの setParameter(long)

オーバーライド:
クラス OfflineFelica 内の setParameter
パラメータ:
param - 属性値を指定します。 OfflineFelica.PARAM_NODE_CODE_LEN_2、または OfflineFelica.PARAM_NODE_CODE_LEN_4 を指定可能です。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 param に不正な属性値が指定された場合に発生します。
FelicaException - 搬送波受信中のために、 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 外部カードがエラー情報を返したことにより、 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_EXTERNAL_CARD_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 属性指定に失敗した場合に発生します (ID_SETPARAMETER_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

negotiateBaudRate

public int negotiateBaudRate(int baudrate)
                      throws FelicaException,
                             java.io.IOException
外部カードとの間で、無線通信速度のネゴシエーションを行います。

このメソッドを呼び出すと、外部カードに対してポーリングを行い、 外部カードの IDm と対応通信速度を取得します。 取得した IDm が、このオブジェクトの保持している IDm と異なる場合、 例外 FelicaException(TYPE_IDM_MISMATCH_ERROR) が発生します。

その後、このメソッドは外部カードの対応通信速度から 212kbps または 424kbps のいずれかを選択します。 選択方法は、引数に指定された通信速度を優先的に選択します。 つまり、外部カードが引数に指定された通信速度に対応している場合はその通信速度を選択し、 対応していない場合はもう一方の通信速度を選択します。 外部カードが 212kpbs と 424kbps のどちらの通信速度にも対応していない場合は、 例外 FelicaException(TYPE_UNDEFINED_ERROR) が発生します。 外部カードがポーリングによる対応通信速度の取得に対応していない場合は 212kbps を選択します。 選択後、内部の FeliCa IC チップ に対して無線通信速度を設定します。 設定した無線通信速度はこのメソッドの戻り値として返します。

なお、このメソッドにて設定した無線通信速度は、 以下の条件によって初期値に戻ります。

また、このメソッドにて設定した無線通信速度は、 以下のメソッドを呼び出すことで変更される可能性があることに注意して下さい。 これは、FeliCa IC チップにおいて無線通信速度の設定は唯一であるためです。

パラメータ:
baudrate - ネゴシエーションにおいて優先とする通信速度を指定します。
BAUDRATE_212_KBPS または BAUDRATE_424_KBPS を指定できます。
戻り値:
ネゴシエーションの結果、FeliCa IC チップに設定された無線通信速度を返します。
BAUDRATE_212_KBPS または BAUDRATE_424_KBPS が返ります。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 baudrate に不正な値が指定された場合に発生します。
FelicaException - ポーリングにより取得した IDm が このオブジェクトの保持している IDm と異なることにより、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_IDM_MISMATCH_ERROR)
FelicaException - 搬送波受信中のために、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_DEVICE_ERROR)。
FelicaException - レスポンスタイムアウトにより、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_TIMEOUT_ERROR)。
FelicaException - レスポンスデータのフォーマットが正しくないことにより、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_FORMAT_ERROR)。
FelicaException - 実行手順不正(搬送波が出力されていない)により、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_ILLEGAL_STATE_ERROR)。
FelicaException - 外部カードからのレスポンスデータの長さが上限を超えていたことにより、 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_UNEXPECTED_ERROR)。
FelicaException - 無線通信速度設定に失敗した場合に発生します (ID_NEGOTIATE_BAUDRATE_ERROR, TYPE_UNDEFINED_ERROR)。
java.io.InterruptedIOException - FeliCaカードアクセス中に、 サスペンド状態への遷移によりカードアクセス処理が失敗した場合に発生します。
PortBusyException - ポートビジーエラーが発生した場合に発生します。
java.io.IOException - 入出力エラーが発生した場合に発生します。

setTimeout

public void setTimeout(int timeout)
このオブジェクトのカード処理におけるタイムアウト値を設定します。 ここで設定されたタイムアウト値は、 このオブジェクトに対してだけ有効です。

引数に指定可能なタイムアウト値の範囲は、スーパークラスとは異なります。

このオブジェクトに設定されているタイムアウト値は、 内部の FeliCa IC チップに対するコマンド応答待ち制限時間です。
外部カードに対して任意の FeliCa コマンドを送信するためのコマンド (= Communicate Thru コマンド) の 「タイムアウト時間」 には、 このオブジェクトに設定されているタイムアウト値から 200[ms] を減算した値が指定されます。

オーバーライド:
クラス OfflineFelica 内の setTimeout
パラメータ:
timeout - タイムアウト値[ms]。 201 以上 60200 以下の値が指定できます。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 timeout に 201 より小さい値、 または 60200 より大きい値が指定された場合に発生します。