11


使用藍芽與 OBEX API

Sun JavaTM Wireless Toolkit for CLDC 模擬器支援藍芽的 Java API︰JSR 82。模擬器與 1.1 版規格完全相容,此規格描述如何與推送註冊表整合。JSR 82 包含兩個獨立的 API:

這一章描述 Sun JavaTM Wireless Toolkit for CLDC 如何實作藍芽與 OBEX API。


11.1 藍芽模擬環境

Sun JavaTM Wireless Toolkit for CLDC 模擬器可讓您開發及測試使用藍芽的應用程式,而無需使用真的藍芽硬體。工具組會模擬執行模擬器所需的藍芽環境。多個模擬器實例可以使用藍芽 API 互相探索,並交換資料。

如需範例,請參閱附錄 A 中的 BluetoothDemo 文件。


11.2 透過紅外線使用 OBEX

Sun JavaTM Wireless Toolkit for CLDC 透過模擬的藍芽和紅外線連線來實作 OBEX 傳輸。模擬的紅外線連線遵循 IrDA 標準 (請參閱 http://www.irda.org/)。模擬的紅外線傳輸可在多個執行中的模擬器之間進行。


11.3 設定 OBEX 與藍芽偏好

Sun JavaTM Wireless Toolkit for CLDC 可讓您配置藍芽與 OBEX 模擬環境。選擇 [編輯] > [偏好],並選取 [藍芽/OBEX],以顯示下列視窗。

圖 11-1 藍芽與 OBEX 偏好

已選取 [藍芽] 的 [內部特性] 標籤的藍芽/OBEX 偏好

11.3.1 OBEX 偏好

實際作業時,使用 IrDA 的裝置用偵聽的方式來探索其他裝置。您可以用偏好視窗 [IrDA OBEX] 區段中的 [探索逾時] 欄位,配置 Sun JavaTM Wireless Toolkit for CLDC 模擬器在探索其他裝置時,等候的時間長短。請以毫秒為單位輸入值。

在 API 層級,探索逾時值會決定呼叫 Connector.open("irdaobex://discover...") 區段時,要等候多久之後才會傳回或丟出異常。

最大資料封包長度會影響模擬器之間,每個資料封包中傳送的資料量。資料封包值越短,產生的資料封包越多,資料封包耗用時間也越多。

11.3.2 藍芽內部特性

在偏好視窗的 [藍芽] 區段中,[裝置探索逾時] 是模擬器嘗試在模擬藍芽環境中尋找其他裝置時,等候的時間長短 (以毫秒為單位)。

[下一個模擬器的藍芽位址] 是要指定給第一個模擬器實例的藍芽位址。模擬器的後續實例將接收自動產生的位址。

11.3.3 藍芽系統特性

偏好視窗的 [藍芽] 區段中的 [系統特性] 標籤包含的特性,在應用程式中使用 javax.bluetooth.LocalDevicegetProperty() 方法即可擷取。

有關藍芽特性的完整說明,請參閱 JSR 82 規格。

11.3.4 藍芽 BCC 特性

Bluetooth Control Center (BCC) 用於控制藍芽設定。有些裝置可能會提供 GUI,以自訂藍芽設定。在 Sun JavaTM Wireless Toolkit for CLDC 中,使用藍芽偏好的 [BCC 特性] 標籤配置 BCC。可配置的特性如下。


表格 11-1 BCC 特性

特性

描述

啟用藍芽支援

如果停用這個特性,LocalDevice.getLocalDevice() 會丟出 BluetoothStateException,而且無法建立任何連線。其可用於測試裝置 (支援 JSR 82 但是停用了藍芽功能) 上應用程式的運作方式。

裝置可探索

指出其他模擬器是否能夠探索此模擬器。

易記名稱

在模擬藍芽環境中,模擬器所使用的易讀名稱。如果名稱保留空白,則模擬器不支援易記名稱功能。

加密

決定支援 (on) 還是不支援 (off) 連線加密。此外,force 設定表示所有連線都必須加密。如需詳細資料,請參閱有關 RemoteDeviceencrypt() 方法的文件。

授權

與「加密」特性類似。請參閱 RemoteDeviceauthorize() 方法。

認證

與「加密」和「授權」類似。請參閱 RemoteDeviceauthenticate() 方法。