越來越多的移動話機開始支持Java軟件,但是你知道其實很多設備也可以支持Java 2 Micro Edition(J2ME)軟件的運行么,?
適用于藍牙無線技術的JABWT標準(Java APIs for Bluetooth wireless technology),由JSR 82規(guī)范所定義,,支持藍牙應用軟件的快速開發(fā),,并保證其輕便,安全,,以及具有高 度的可用性,。而無線設備制造商們對該標準的回應就是——已經紛紛宣布移動話機以及其他產品將支持JABWT程序的運行。 本文將回顧一下在移動設備上開發(fā)藍牙Java的原理,,并說明一下如何為藍牙通訊書寫一個Java程序,。 Java藍牙API 藍牙Java API定義了兩個包:javax.bluetoothe,,用于核心Java藍牙API,以及Javax.obex,,用于目標交換協(xié)議(OBEX,,Object Exchange)?;贘SR 82規(guī)范,,潛在藍牙系統(tǒng)必須 支持一個藍牙控制中心(BCC,,Bluetooth Control Center),它作為一個控制面板類似程序,,允許用戶或者OEM制造商,,根據堆棧中的特定配置參數定義特定的值。特定情況下,, 它將被用于一個堆棧的初始化,。任何藍牙程序都有這些成分:棧初始化,設備管理,,設備發(fā)現(xiàn),,服務發(fā)現(xiàn),以及通訊,。 棧初始化 在一篇關于“藍牙和Java起步 ”的Java.net文章中,Bruce Hopkins(藍牙Java的作者)演示了在Atinav Java藍牙SDK開發(fā)包中,,這一系列的設定是如何完成的(可以查看表格A),。有一點很重要,就是這些調用并不是JSR 82規(guī) 范的一部分,。其他的JSR 82部署可能會混合其他的方式,,來初始化堆棧。 設備管理 LocalDevice(本地設備)允許你獲取關于藍牙設備的靜態(tài)信息。它依賴于javax.blutetooth.DeviceClass類,,來去的設備的類型,,以及它所要求的服務種類。 RemoteDevice(遠程設備)允許你獲取有關附近藍牙設備的信息(比方說,,一個遠程藍牙設備的地址),。它描繪一個遠程設備(也就是說,在一定范圍內的某臺設備),,并提供獲 取該設備有關信息的方法,,包括該設備的藍牙地址以及名稱。 每臺藍牙設備都有一個獨一無二的硬件地址,,就像電腦的MAC地址一樣,。你可以設定設備發(fā)現(xiàn)的級別,并通過調用在LocalDevice對象中的setDiscoverable()方法(查看表格B),讓其他藍牙設備找到該設備,。 設備發(fā)現(xiàn) 如果該設備不希望被動等待發(fā)現(xiàn)其他設備,,它可以使用DiscoveryAgent.retrieveDevices()方法,,來獲取一個現(xiàn)存的列表。根據傳遞的參數不同,,該方法可以返回一個先前聆聽所 發(fā)現(xiàn)的設備列表,,或者返回一個本地設備告知藍牙控制中心的,它將經常聯(lián)系的已知設備列表,。表格C顯示了最簡單的方法,,當發(fā)現(xiàn)一臺新藍牙設備時,就向DiscoveryAgent要求一個對象,,通過DiscoveryListener接口來通知你。 服務發(fā)現(xiàn) 通訊 URL則使用了一種服務記錄,由數字和字母組成,,看起來就像是這樣:btspp://508031205080110F1B1B1D1C100:8,。這意味著一個客戶端應當使用一個藍牙串行接口類型(btspp:// )來和服務器上的頻道8建立連接,連接的設備地址是508031205080110F1B1B1D1C100,。設備地址和電腦的物理地址類似,。表格E顯示了簡單的RFCOMM連接看起來是怎樣的。 |
|
來自: ShangShujie > 《java》