免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在J2ME中開發(fā)藍(lán)牙無線軟件 - ZDNet China 網(wǎng)絡(luò)與安全
越來越多的移動(dòng)話機(jī)開始支持Java軟件,但是你知道其實(shí)很多設(shè)備也可以支持Java 2 Micro Edition(J2ME)軟件的運(yùn)行么?

適用于藍(lán)牙無線技術(shù)的JABWT標(biāo)準(zhǔn)(Java APIs for Bluetooth wireless technology),由JSR 82規(guī)范所定義,支持藍(lán)牙應(yīng)用軟件的快速開發(fā),并保證其輕便,安全,以及具有高 度的可用性。而無線設(shè)備制造商們對(duì)該標(biāo)準(zhǔn)的回應(yīng)就是——已經(jīng)紛紛宣布移動(dòng)話機(jī)以及其他產(chǎn)品將支持JABWT程序的運(yùn)行。

本文將回顧一下在移動(dòng)設(shè)備上開發(fā)藍(lán)牙Java的原理,并說明一下如何為藍(lán)牙通訊書寫一個(gè)Java程序。

Java藍(lán)牙API
Java藍(lán)牙API主要依賴于Java普通連接架構(gòu),該架構(gòu)長期將其限制在J2ME之內(nèi);不過,也有建議將GCF包含進(jìn)J2SE的。Java藍(lán)牙API可被用于一個(gè)相當(dāng)廣泛的系統(tǒng)之內(nèi)。

藍(lán)牙Java API定義了兩個(gè)包:javax.bluetoothe,用于核心Java藍(lán)牙API,以及Javax.obex,用于目標(biāo)交換協(xié)議(OBEX,Object Exchange)?;贘SR 82規(guī)范,潛在藍(lán)牙系統(tǒng)必須 支持一個(gè)藍(lán)牙控制中心(BCC,Bluetooth Control Center),它作為一個(gè)控制面板類似程序,允許用戶或者OEM制造商,根據(jù)堆棧中的特定配置參數(shù)定義特定的值。特定情況下, 它將被用于一個(gè)堆棧的初始化。任何藍(lán)牙程序都有這些成分:棧初始化,設(shè)備管理,設(shè)備發(fā)現(xiàn),服務(wù)發(fā)現(xiàn),以及通訊。

棧初始化
在預(yù)備開始無線通訊時(shí),你需要根據(jù)制造商指定的方式,對(duì)藍(lán)牙設(shè)備進(jìn)行初始化。(要談到具體的正確堆棧初始化步驟,則超出了藍(lán)牙API規(guī)范所覆蓋的范圍)

在一篇關(guān)于“藍(lán)牙和Java起步 ”的Java.net文章中,Bruce Hopkins(藍(lán)牙Java的作者)演示了在Atinav Java藍(lán)牙SDK開發(fā)包中,這一系列的設(shè)定是如何完成的(可以查看表格A)。有一點(diǎn)很重要,就是這些調(diào)用并不是JSR 82規(guī) 范的一部分。其他的JSR 82部署可能會(huì)混合其他的方式,來初始化堆棧。

設(shè)備管理
JSR 82規(guī)范引進(jìn)了兩個(gè)類,你可以用在設(shè)備管理方面:LocalDevice(本地設(shè)備)以及RemoteDevice(遠(yuǎn)程設(shè)備)。

LocalDevice(本地設(shè)備)允許你獲取關(guān)于藍(lán)牙設(shè)備的靜態(tài)信息。它依賴于javax.blutetooth.DeviceClass類,來去的設(shè)備的類型,以及它所要求的服務(wù)種類。

RemoteDevice(遠(yuǎn)程設(shè)備)允許你獲取有關(guān)附近藍(lán)牙設(shè)備的信息(比方說,一個(gè)遠(yuǎn)程藍(lán)牙設(shè)備的地址)。它描繪一個(gè)遠(yuǎn)程設(shè)備(也就是說,在一定范圍內(nèi)的某臺(tái)設(shè)備),并提供獲 取該設(shè)備有關(guān)信息的方法,包括該設(shè)備的藍(lán)牙地址以及名稱。

每臺(tái)藍(lán)牙設(shè)備都有一個(gè)獨(dú)一無二的硬件地址,就像電腦的MAC地址一樣。你可以設(shè)定設(shè)備發(fā)現(xiàn)的級(jí)別,并通過調(diào)用在LocalDevice對(duì)象中的setDiscoverable()方法(查看表格B),讓其他藍(lán)牙設(shè)備找到該設(shè)備。

設(shè)備發(fā)現(xiàn)
無線設(shè)備需要一種機(jī)制,允許他們發(fā)現(xiàn)其他設(shè)備,并獲得對(duì)它們的訪問權(quán)。核心藍(lán)牙API的DiscoveryAgent類,以及DiscoveryListener接口提供了必要的發(fā)現(xiàn)設(shè)備。一共有三種方 法來獲取可訪問設(shè)備的列表。DiscoveryAgent.startInquiry()方法將設(shè)備放入一種調(diào)查模式。要利用這種模式,應(yīng)用程序必須定義一個(gè)事件聆聽器,從而對(duì)和聆聽有關(guān)的事件做出 響應(yīng)。每當(dāng)聆聽發(fā)現(xiàn)了一臺(tái)設(shè)備,就會(huì)調(diào)用DiscoveryListener.deviceDiscovered()。當(dāng)該聆聽完成或者被取消后,就會(huì)調(diào)用DiscoveryListener.inquiryCompleted()。

如果該設(shè)備不希望被動(dòng)等待發(fā)現(xiàn)其他設(shè)備,它可以使用DiscoveryAgent.retrieveDevices()方法,來獲取一個(gè)現(xiàn)存的列表。根據(jù)傳遞的參數(shù)不同,該方法可以返回一個(gè)先前聆聽所 發(fā)現(xiàn)的設(shè)備列表,或者返回一個(gè)本地設(shè)備告知藍(lán)牙控制中心的,它將經(jīng)常聯(lián)系的已知設(shè)備列表。表格C顯示了最簡(jiǎn)單的方法,當(dāng)發(fā)現(xiàn)一臺(tái)新藍(lán)牙設(shè)備時(shí),就向DiscoveryAgent要求一個(gè)對(duì)象,通過DiscoveryListener接口來通知你。

服務(wù)發(fā)現(xiàn)
服務(wù)發(fā)現(xiàn)可以運(yùn)行你發(fā)現(xiàn)的附近服務(wù),而不管到底是何種設(shè)備提供了它們。DiscoveryAgent提供了方法,用來在一臺(tái)藍(lán)牙服務(wù)器設(shè)備上發(fā)現(xiàn)服務(wù),并初始化“發(fā)現(xiàn)服務(wù)”事務(wù)。在 一個(gè)服務(wù)可以被發(fā)現(xiàn)之前,它必須被在一臺(tái)藍(lán)牙服務(wù)器設(shè)備上注冊(cè)或者廣告。該服務(wù)器對(duì)一系列事務(wù)進(jìn)行響應(yīng),包括建立一個(gè)服務(wù)記錄,以說明所提供的服務(wù),接受來自客戶端的 連接,以及向服務(wù)器的服務(wù)發(fā)現(xiàn)數(shù)據(jù)庫(SDDB,server‘s Service Discovery Database)添加一條服務(wù)記錄。一般情況下,它工作起來很像網(wǎng)頁服務(wù)。表格D就是一個(gè)服務(wù)注冊(cè)的示例。

通訊
兩臺(tái)設(shè)備必須共享一個(gè)通用通訊協(xié)議。為了程序可以訪問多種不同類型的藍(lán)牙服務(wù),藍(lán)牙Java API提供了一種允許連接到任意使用RFCOMM, L2CAP, OBEX協(xié)議服務(wù)的機(jī)制。如果一個(gè) 服務(wù)使用了另一種協(xié)議(比如TCP/IP),屬于這些協(xié)議的上一層,那么該程序可以訪問服務(wù),但是僅當(dāng)它在程序中部署了其他協(xié)議后,才可以使用CLDC通用連接架構(gòu)。

URL則使用了一種服務(wù)記錄,由數(shù)字和字母組成,看起來就像是這樣:btspp://508031205080110F1B1B1D1C100:8。這意味著一個(gè)客戶端應(yīng)當(dāng)使用一個(gè)藍(lán)牙串行接口類型(btspp:// )來和服務(wù)器上的頻道8建立連接,連接的設(shè)備地址是508031205080110F1B1B1D1C100。設(shè)備地址和電腦的物理地址類似。表格E顯示了簡(jiǎn)單的RFCOMM連接看起來是怎樣的。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
手機(jī)虛擬示波器
基于NFC技術(shù)的藍(lán)牙對(duì)象交換方法
在 Java 應(yīng)用程序中訪問USB設(shè)備—編程愛好者網(wǎng)站
J2ME基本概念解析
比較 JSR 168 Java Portlet 規(guī)范與 IBM Portlet API
JSR224-JAX-WS2.0
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服