国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用Java藍(lán)牙無(wú)線通訊技術(shù)API概述之一

2019-11-18 10:48:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  藍(lán)牙是一種低成本、短距離的無(wú)線通信技術(shù)。對(duì)于那些希望創(chuàng)建個(gè)人局域網(wǎng)(PANs)的人們來(lái)說(shuō),藍(lán)牙技術(shù)已經(jīng)越來(lái)越流行了。每個(gè)個(gè)人局域網(wǎng)都在獨(dú)立設(shè)備的四周被動(dòng)態(tài)地創(chuàng)建,并且為蜂窩式電話和PDA等設(shè)備提供了自動(dòng)連接和即時(shí)共享數(shù)據(jù)的能力。
  
  為了在java平臺(tái)上開發(fā)支持藍(lán)牙技術(shù)的軟件,JCP定義了JSR82標(biāo)準(zhǔn)--Java藍(lán)牙無(wú)線技術(shù)APIs(JABWT)。
  
  在這篇文章中,我將介紹一些關(guān)于藍(lán)牙技術(shù)的背景,概述一下支持藍(lán)牙技術(shù)的MIDlet應(yīng)用程序的典型要素,然后介紹給你核心的Java藍(lán)牙APIs。最后我們展示一些代碼來(lái)演示如何使用這些APIs。
  
  實(shí)際上JSR82定義了兩個(gè)獨(dú)立的可選包:核心藍(lán)牙API和對(duì)象交換(OBEX)API。這篇文章將對(duì)這兩個(gè)中更為普遍的部分--核心藍(lán)牙包javax.bluetooth進(jìn)行具體地闡述,而OBEX API(對(duì)象交換),我們留到以后去討論。
  
  藍(lán)牙無(wú)線電技術(shù)基于在工業(yè)、科學(xué)以及醫(yī)學(xué)(ISM)上公用的2.45GHz開放頻段,這一頻段無(wú)需授權(quán)并全球通用。當(dāng)藍(lán)牙設(shè)備互相連接時(shí),他們將組成一個(gè)微微網(wǎng)(piconet),即以一個(gè)主設(shè)備和最大7個(gè)從設(shè)備的形式動(dòng)態(tài)創(chuàng)建網(wǎng)絡(luò)。藍(lán)牙也支持piconet網(wǎng)之間的連接:當(dāng)一個(gè)piconet中的主設(shè)備成為另一個(gè)piconet的從設(shè)備時(shí),piconet與piconet間將形成橋接。
  
  藍(lán)牙協(xié)議棧提供了一組的高層協(xié)議和API以完成發(fā)現(xiàn)服務(wù)和模擬串行I/O,還有一個(gè)關(guān)于包分割和重組的低層協(xié)議以及多路技術(shù)協(xié)議和質(zhì)量服務(wù)。藍(lán)牙互操作性PRofiles--不要與J2ME profiles搞混--它是用來(lái)描述跨平臺(tái)互操作性和一致性需求的。
  
  藍(lán)牙互操作性profiles包括三方面內(nèi)容:通用訪問(wèn)profile(GAP)定義了設(shè)備治理功能性;服務(wù)發(fā)現(xiàn)應(yīng)用profiles定義了服務(wù)發(fā)現(xiàn)方面的內(nèi)容,串口profiles定義了互操作設(shè)備和模擬串口電纜的能力。你可以通過(guò)藍(lán)牙規(guī)范(Bluetooth specification)學(xué)習(xí)這些和其它的profiles。藍(lán)牙棧包含一個(gè)軟件棧來(lái)映射一個(gè)固件棧(firmware),由圖1所示:
   使用Java藍(lán)牙無(wú)線通訊技術(shù)API概述之一(圖一)
  圖片1:藍(lán)牙協(xié)議棧
  
  JSR82揭示了藍(lán)牙軟件棧給Java平臺(tái)的開發(fā)者。其中引起我們愛好的是服務(wù)發(fā)現(xiàn)協(xié)議(SDP),用來(lái)模擬串口的串口profile RFCOMM,向上層協(xié)議提供諸如分割和重組等導(dǎo)向性連接的數(shù)據(jù)轉(zhuǎn)換操作的邏輯鏈路控制及適配profile(L2CAP),以及多路技術(shù)協(xié)議。注重JABWT不支持無(wú)連接L2CAP。
  
  JABWT也包括對(duì)象交換API。OBEX也是高層API,它用來(lái)交換對(duì)象數(shù)據(jù),諸如電子商業(yè)卡和日歷標(biāo)簽之間以vCard和vCalendar的格式進(jìn)行數(shù)據(jù)傳輸。在藍(lán)牙上,對(duì)象交換通過(guò)RFCOMM發(fā)生。OBEX在最開始時(shí)是由紅外(IrDA)引入的,并且它可以在IrDA協(xié)議、TCP/ip或者是其他協(xié)議的頂層實(shí)現(xiàn)。
  
  典型的藍(lán)牙應(yīng)用程序?qū)嵗?/b>
  
  一個(gè)開啟藍(lán)牙功能的應(yīng)用可以作為一個(gè)服務(wù)端或是一個(gè)客戶端--一個(gè)服務(wù)的提供者或是消費(fèi)者,或者它可以作為一個(gè)真正的點(diǎn)對(duì)點(diǎn)終端同時(shí)表現(xiàn)出服務(wù)和客戶的行為。圖2所示一個(gè)藍(lán)牙規(guī)范用例:
   使用Java藍(lán)牙無(wú)線通訊技術(shù)API概述之一(圖二)
  圖2:一個(gè)典型的具有藍(lán)牙功能的實(shí)際用例
  
  對(duì)這些用例的簡(jiǎn)要介紹:
  
  .初始化--所有具備藍(lán)牙功能的應(yīng)用程序必須先要初始化藍(lán)牙棧。
  
  .客戶端--一個(gè)客戶對(duì)遠(yuǎn)端服務(wù)進(jìn)行消費(fèi)。首先它要發(fā)現(xiàn)所有四周的設(shè)備,然后對(duì)于每一個(gè)發(fā)現(xiàn)的設(shè)備搜索它感愛好的服務(wù)。
  
  .服務(wù)器端--一個(gè)為客戶端提供服務(wù)的服務(wù)器。它在服務(wù)發(fā)現(xiàn)數(shù)據(jù)庫(kù)(SDDB)中對(duì)客戶端進(jìn)行注冊(cè),對(duì)他們進(jìn)行有效廣播。然后等待引入的連接,在他們進(jìn)入時(shí)接受他們并為他們提供服務(wù)。最后,當(dāng)不再需要服務(wù)時(shí),應(yīng)用程序會(huì)在服務(wù)發(fā)現(xiàn)數(shù)據(jù)庫(kù)(SDDB)中將他們移除。圖三:用例中參與活動(dòng)的圖表:
   使用Java藍(lán)牙無(wú)線通訊技術(shù)API概述之一(圖三)
  圖 3: 藍(lán)牙應(yīng)用程序活動(dòng)圖
  
  藍(lán)牙應(yīng)用程序中的元素
  
  圖4顯示了在MIDlet中一個(gè)典型藍(lán)牙功能應(yīng)用程序中的一些元素:
   使用Java藍(lán)牙無(wú)線通訊技術(shù)API概述之一(圖四)
  圖4: 具有藍(lán)牙功能的 MIDlet (高端組織)
  
  中間的是核心應(yīng)用程序My Bluetooth MIDlet,它擴(kuò)展自javax.microedition.midlet.MIDlet。沒(méi)有顯示出來(lái)的還有MIDlet中實(shí)現(xiàn)的javax.microedition.lcdui.CommandListener以監(jiān)服從用戶接口中輸入的命令。應(yīng)用程序使用的剩余的類和接口都包含在了藍(lán)牙規(guī)范中,像設(shè)備發(fā)現(xiàn)和服務(wù),連接和服務(wù)消費(fèi),還有廣播和提供服務(wù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宿迁市| 洛宁县| 临邑县| 灵武市| 土默特右旗| 丹江口市| 怀化市| 那曲县| 岢岚县| 扶沟县| 洞头县| 扬州市| 神池县| 大方县| 宁陵县| 吉木乃县| 伊吾县| 乳山市| 东源县| 海林市| 萨迦县| 施甸县| 方正县| 井冈山市| 东兴市| 曲水县| 大新县| 云霄县| 长汀县| 华阴市| 南阳市| 阜城县| 永昌县| 宁化县| 城口县| 安新县| 通城县| 格尔木市| 股票| 灵宝市| 六安市|