11


Bluetooth API と OBEX API の使用法

Sun JavaTM Wireless Toolkit for CLDC のエミュレータは、JSR 82 「Java APIs for Bluetooth」に対応しています。エミュレータは、転送レジストリとの統合が記述されているバージョン 1.1 の仕様に完全に準拠しています。JSR 82 には、2 つの独立した API が含まれています。

この章では、Bluetooth API と OBEX API が Sun JavaTM Wireless Toolkit for CLDC でどのように実装されるかについて説明します。


11.1 Bluetooth シミュレーション環境

Sun JavaTM Wireless Toolkit for CLDC のエミュレータを使用すると、実際の Bluetooth ハードウェアがなくても、Bluetooth を使用するアプリケーションの開発やテストを行うことができます。実行中のエミュレータに対して、ツールキットが Bluetooth 環境をシミュレートします。複数のエミュレータインスタンスは、Bluetooth API を使用して、相互に検出してデータを交換することができます。

実例については、付録 ABluetoothDemo のマニュアルを参照してください。


11.2 赤外線経由の OBEX

Sun JavaTM Wireless Toolkit for CLDC は、シミュレートした Bluetooth 接続や赤外線接続を介した OBEX 転送を実装します。シミュレートされた赤外線接続は、IrDA 標準に準拠しています (http://www.irda.org/ を参照)。実行中の複数のエミュレータ間で、赤外線転送をシミュレートできます。


11.3 OBEX と Bluetooth の環境設定

Sun JavaTM Wireless Toolkit for CLDC では、Bluetooth と OBEX のシミュレーション環境を設定できます。「編集」->「環境設定」を選択し、「Bluetooth/OBEX」を選択して次のウィンドウを表示します。

図 11-1 Bluetooth と OBEX の環境設定


Bluetooth/OBEX preferences with Bluetooth Internal Properties tab selected

11.3.1 OBEX の環境設定

IrDA を実際に使用するデバイスは、待機することによってほかのデバイスを検出します。Sun JavaTM Wireless Toolkit for CLDC のエミュレータでほかのデバイスを検出するために待機する時間は、環境設定ウィンドウの「IrDA OBEX」セクションの「検出のタイムアウト」フィールドで設定できます。値はミリ秒単位で入力します。

API レベルでは、検出タイムアウトの値により、Connector.open("irdaobex://discover...") の呼び出しがブロックされる時間が決まります。この時間が経過すると、この関数から戻されるか、例外がスローされます。

最大パケット長の設定は、エミュレータ間で送信される各パケット内のデータ量に影響を与えます。パケット長が小さいほど、パケット数が増加し、パケットのオーバーヘッドも増大します。

11.3.2 Bluetooth 内部プロパティー

環境設定ウィンドウの「Bluetooth」セクションの「デバイス検出のタイムアウト」では、シミュレートされた Bluetooth 環境でほかのデバイスを検出するためにエミュレータで待機する時間を、ミリ秒単位で指定します。

「次のエミュレータの Bluetooth アドレス」は、最初のエミュレータインスタンスに割り当てられる Bluetooth アドレスです。以降のエミュレータインスタンスには、自動的にアドレスが割り当てられます。

11.3.3 Bluetooth システムのプロパティー

環境設定の「Bluetooth」セクションの「システムプロパティー」タブには、javax.bluetooth.LocalDevicegetProperty() メソッドを使ってアプリケーションで取得できるプロパティーが含まれています。

Bluetooth のプロパティーについては、JSR 82 仕様で詳しく説明されています。

11.3.4 Bluetooth BCC のプロパティー

Bluetooth Control Center (BCC) は、Bluetooth の設定を制御します。デバイスによっては、Bluetooth の設定をカスタマイズするための GUI が用意されていることもあります。Sun JavaTM Wireless Toolkit for CLDC では、Bluetooth 環境設定の「BCC プロパティー」タブを使って BCC を設定します。プロパティーは次のとおりです。


表 11-1 BCC のプロパティー

プロパティー

説明

Bluetooth のサポートを有効にする

このプロパティーが無効になっている場合は、LocalDevice.getLocalDevice()BluetoothStateException がスローされるので、接続を作成できません。JSR 82 に対応しているが Bluetooth 機能が無効になっているデバイスで、アプリケーションの動作をテストする場合に役立ちます。

デバイス検出可能

このエミュレータをほかのエミュレータから検出可能にするかどうかを示します。

フレンドリ名

シミュレートされた Bluetooth 環境のエミュレータを表す、人間が判読できる名前です。この名前を空白のままにすると、エミュレータではフレンドリ名機能がサポートされません。

暗号化

接続の暗号化に対応するかどうかを指定します。on の場合は対応し、off の場合は対応しません。force の場合は、すべての接続に暗号化を義務付けます。詳細については、RemoteDeviceencrypt() メソッドのマニュアルを参照してください。

承認

「暗号化」に類似したプロパティーです。RemoteDeviceauthorize() メソッドを参照してください。

認証

「暗号化」および「承認」に類似したプロパティーです。RemoteDeviceauthenticate() メソッドを参照してください。