|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.docomostar.device.felica.AdhocDataTransfer
public final class AdhocDataTransfer
アドホック通信による連続データ転送機能を制御するクラスです。
アドホック通信による連続データ転送において、サーバとして振る舞うためには、
FelicaAdhocEvent.getAdhocDataTransfer()
呼び出しによってこのオブジェクトを取得し、
reply(int)
によって、クライアント側に、
データ転送要求を受け入れるかどうかを通知しなければなりません。
この場合、reply(int)
以外のメソッドを呼び出すと例外が発生します。
アドホック通信による連続データ転送において、
クライアントとして振る舞うためには、
最初に setup(String, String, Hashtable)
を呼び出す必要があります。
setup()
が正常にリターンした時点で、
サーバとのアドホック通信のリンクが確立されています。
リンク確立後は
Connector.open("obex:/felicaclient")
呼び出しにより
FelicaClientObexConnection
オブジェクトを取得し、
OBEX によりデータの送受信を行ってください。
なお、アドホック通信におけるクライアント側が
Connector.open("obex:/felicaserver")
を呼び出すと例外が発生します。
クライアント側が通信を終了する場合には、 以下の手順を踏んで下さい。
FelicaClientObexConnection.close()
呼び出しにより
OBEX 通信を終了させる
terminateAdhoc()
呼び出しにより、アドホック通信を終了させる
Felica.turnOffRFPower()
により、搬送波の出力を停止する
フィールドの概要 | |
---|---|
static int |
REPLY_ACCEPT
クライアント側からのデータ転送要求を受け入れることを表します(=0)。 |
static int |
REPLY_REJECT
クライアント側からのデータ転送要求を拒否することを表します(=1)。 |
メソッドの概要 | |
---|---|
int |
getAdhocState()
アドホック通信機能の現在の状態(アドホックモード)を取得します。 |
byte[] |
getIDm()
このオブジェクトがアクセス先として保持している IDm を返します。 |
void |
reply(int value)
クライアント側からの、 アドホック通信によるデータ転送要求について、 受け入れるか否かを通知します。 |
void |
setup(String adfURL,
String command,
java.util.Hashtable params)
アドホック通信による連続データ転送先とのリンクを確立します。 |
void |
terminateAdhoc()
アドホック通信による連続データ転送を終了し、 リンクを切断します。 |
クラス Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int REPLY_ACCEPT
reply(int)
,
定数フィールド値public static final int REPLY_REJECT
reply(int)
,
定数フィールド値メソッドの詳細 |
---|
public void setup(String adfURL, String command, java.util.Hashtable params) throws java.io.IOException
アドホック通信による連続データ転送先とのリンクを確立します。
このメソッドを呼び出すと、
ユーザに連続データ転送を開始して良いかを確認するダイアログを表示します。
ユーザがデータ転送の開始を承諾すると、
この端末を転送先のデバイスに近付けるよう促すダイアログを表示します。
ユーザが端末を近付けると、リンクが確立され、
引数 adfURL
で指定された転送先アプリケーションに対して、
データ転送の受け入れ可否を問い合わせます。
転送先アプリケーションがデータ転送の受け入れを承諾すると、
このメソッドは正常にリターンします。
リンクが確立されると、 リンク先のカードのIDmが取得できるようになります。 なお、ここでユーザがデータ転送の開始を承諾してから、 データ転送が終了するまでは、 端末を転送先のデバイスに近付け続けている必要があります。 途中でデバイスを遠ざけると、リンクが切断されますので注意して下さい。
ユーザがデータ転送の開始を拒否した場合や、 転送先アプリケーションがデータ転送の受け入れを拒否した場合も含めて、 結果としてリンクが確立できなかった場合には例外が発生します。
このメソッド呼び出しの過程で、
通信先の外部カードとの間で、無線通信速度のネゴシエーションを行います。
その結果、ThruRWOfflineFelica.negotiateBaudRate(int)
で設定した通信速度が変更されている可能性がありますので注意してください。
このメソッド呼び出しで例外が発生した場合でも同様です。
引数 params
を用いて、
転送先アプリケーション側に起動パラメータを渡すことができます。
転送先アプリケーションは、
params
で指定した値が、
FelicaAdhocEvent.getReceivedParameter()
の戻り値として取得できます。
引数 params
には、キーと値
(どちらも String
型)
の組を複数個格納したハッシュテーブルを指定できますが、
下記の制限があります。
adfURL
- 転送先アプリケーションの ADF の URL を指定します。
これによって転送先のアプリケーションを特定します。command
- 転送先アプリケーションへ通知する起動コマンドを指定します。params
- 転送先アプリケーションへ通知する、起動パラメータ
を格納したハッシュテーブルを指定します。
起動パラメータそのものが不要な場合には null を指定します。
IllegalStateException
-
FelicaAdhocEvent
インスタンスに対する
FelicaAdhocEvent.getAdhocDataTransfer()
呼び出しによって得られたものである場合に発生します。
DeviceException
- DeviceException
- ConnectionException
- setup()
実行中の別スレッドが存在する場合に発生します。
NullPointerException
-
IllegalArgumentException
-
NullPointerException
-
IllegalArgumentException
-
IllegalArgumentException
-
ClassCastException
-
IllegalArgumentException
-
IllegalArgumentException
-
IllegalArgumentException
-
ConnectionException
- ConnectionException
- SecurityException
-
DeviceException
- ConnectionException
- ConnectionException
- ConnectionException
- ConnectionException
- java.io.InterruptedIOException
-
Felica.close()
・terminateAdhoc()
呼び出しにより、
通信が中断された場合に発生します。
ConnectionRefusedException
- ConnectionRefusedException
- ConnectionRefusedException
- ConnectionRefusedException
- ConnectionRefusedException
- reply(ACCEPT_REJECT)
が呼び出された場合)
に発生します。
ConnectionRefusedException
- ConnectionRefusedException
- java.io.IOException
-
public void terminateAdhoc() throws java.io.IOException
アドホック通信による連続データ転送を終了し、 リンクを切断します。 既にリンクが切断されている場合には何もしません。
このメソッドを呼び出すと、 このオブジェクトが保持している IDm を破棄(初期化)します。
IllegalStateException
-
FelicaAdhocEvent
インスタンスに対する
FelicaAdhocEvent.getAdhocDataTransfer()
呼び出しによって得られたものである場合に発生します。
PortBusyException
-
java.io.IOException
-
public int getAdhocState() throws FelicaException, java.io.IOException
アドホック通信機能の現在の状態(アドホックモード)を取得します。 アドホックモードの取得対象は内部カードです。
このメソッドの戻り値の意味は以下の通りです。
戻り値 | 意味 |
---|---|
0x00 | アドホックモード 0 |
0x01 | アドホックモード 1 |
このメソッドを呼び出すと、 内部カードに対してアクセスする可能性があります。 このため、内部カード内でシステム切り替えが発生し PIN の解除情報がクリアされる可能性があります。
IllegalStateException
-
FelicaAdhocEvent
インスタンスに対する
FelicaAdhocEvent.getAdhocDataTransfer()
呼び出しによって得られたものである場合に発生します。
DeviceException
- DeviceException
- FelicaException
- 萓句、