com.nttdocomo.device.felica
クラス OfflineFelica

Object
  拡張com.nttdocomo.device.felica.OfflineFelica
直系の既知のサブクラス:
ThruRWOfflineFelica

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

オフライン処理(有線カード機能)によって、 内部カードにアクセスする手段を提供するクラスです。 ただし、フリーエリアへのアクセスは除きます。

このクラスのインスタンスの各メソッドは、 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) まで] 尚、下記に記されている失敗回数は、 このクラスの全インスタンスによる失敗回数の合計です。

[DoJa-5.0 (903i) 以降] 尚、下記に記されている失敗回数は、このクラスのインスタンス毎にカウントされます。 このクラスのインスタンスのいずれか 1 つが下記の条件を満たした時点で強制終了されます。

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

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

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

導入されたバージョン:
DoJa-3.0 (506iC)、DoJa-3.5 (900iC)
関連項目:
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
 

フィールドの詳細

CARD_INTERNAL

public static final int CARD_INTERNAL
内部カードを表します(=0)。

関連項目:
Felica.getOfflineFelica(int, int), getCard(), 定数フィールド値

CARD_EXTERNAL

public static final int CARD_EXTERNAL
外部カードを表します(=1)。

関連項目:
Felica.getOfflineFelica(int, int), getCard(), 定数フィールド値

PARAM_NODE_CODE_LEN_2

public static final long PARAM_NODE_CODE_LEN_2
2 バイトノードコード指定パケットを表します(=0x0000000000000000)。

導入されたバージョン:
DoJa-5.0 (903i)
関連項目:
setParameter(long), 定数フィールド値

PARAM_NODE_CODE_LEN_4

public static final long PARAM_NODE_CODE_LEN_4
4 バイトノードコード指定パケットを表します(=0x0000000000010000)。

導入されたバージョン:
DoJa-5.0 (903i)
関連項目:
setParameter(long), 定数フィールド値
メソッドの詳細

checkPIN

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

このメソッドによる PIN 属性参照処理は同時性が確保されます。 従って、CheckPINParameters に登録されているパラメータのうち1つでも PIN 属性参照に失敗した場合は、 全てのパラメータの PIN 属性参照は行われません。

CheckPINParameters に登録されているパラメータ数が 対象カードの同時読み込み上限数を超えていた場合、 全てのパラメータの PIN 属性参照は行われません。

このオブジェクトに設定されているパケット種別 (getNodeCodeLength() が返す値) に従ってコマンドパケットを発行します。 ただし、このオブジェクトに設定されているパケット種別が 「2 バイトノードコード指定パケット」であるにも関わらず、 CheckPINParameters に登録されているパラメータに 2 バイト長では表せないサービスコードが含まれていた場合は例外が発生します。

パラメータ:
param - PIN属性参照パラメータを指定します。
戻り値:
PIN属性データリストを返します。
例外:
DeviceException - FeliCaがオープンされていない場合に発生します(ILLEGAL_STATE)。
DeviceException - オンライン処理が既に開始されている場合に発生します(ILLEGAL_STATE)。 ="checkPIN(com.nttdocomo.device.felica.CheckPINParameters)">

checkPIN

public