第 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.LocalDevice 的 getProperty() 方法即可擷取。

有關藍芽特性的完整說明,請參閱 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 設定表示所有連線都必須加密。如需詳細資料,請參閱有關 RemoteDevice 的 encrypt() 方法的文件。

授權

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

認證

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