張紅雨+張宇峰+馬俊
摘 要:在開放技術(shù)支持下,藍(lán)牙技術(shù)已經(jīng)成為無(wú)線局域網(wǎng)和便攜設(shè)備網(wǎng)絡(luò)的延伸,尤其是在智能手機(jī)上的應(yīng)用,通過藍(lán)牙技術(shù)手機(jī)可以與周邊事物進(jìn)行無(wú)線連接,實(shí)現(xiàn)信息交互。文章基于Android Studio開發(fā)工具,進(jìn)行藍(lán)牙界面設(shè)計(jì)和藍(lán)牙通信功能調(diào)用,實(shí)現(xiàn)了安卓手機(jī)與藍(lán)牙設(shè)備之間的無(wú)線連接。
關(guān)鍵詞:Android Studio;藍(lán)牙通信;客戶端
中圖分類號(hào):TN914 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2017)21-0018-02
引言
目前藍(lán)牙4.0技術(shù)已經(jīng)相對(duì)完善,而且具有功耗低,穩(wěn)定性高,傳輸距離較遠(yuǎn),數(shù)度較快等特點(diǎn)。一大批無(wú)線設(shè)備開始使用藍(lán)牙來(lái)進(jìn)行通信,各種藍(lán)牙設(shè)備應(yīng)用而生。市場(chǎng)上各種可穿戴設(shè)備如智能跑鞋、智能手表、智能眼鏡等基本都使用藍(lán)牙與手機(jī)進(jìn)行通信。這些藍(lán)牙設(shè)備在市場(chǎng)售賣后,獲得了極大認(rèn)可,藍(lán)牙通信技術(shù)功不可沒。
近幾年由于Android開發(fā)應(yīng)用非?;?,谷歌開發(fā)了一套屬于自己的開發(fā)程序Android Studio。Android Studio具有許多非常高效的特性:集成Gradle的打包工具;隨時(shí)可見的效果;可以拖拽UI操作;代碼可自動(dòng)補(bǔ)全;更豐富的操作接口;Google Cloud的高度集成以及全新的特性JUnit和Maven倉(cāng)庫(kù)的集成。因此本文采用最新版的Android Studio進(jìn)行藍(lán)牙通信客戶端的開發(fā)。
1 Android Studio客戶端設(shè)計(jì)流程
圖1是客戶端從開發(fā)到測(cè)試的整個(gè)設(shè)計(jì)流程,使用Android Studio平臺(tái)進(jìn)行設(shè)界面語(yǔ)言和程序內(nèi)部功能算法語(yǔ)言的設(shè)計(jì),使用基于安卓6.0的內(nèi)置虛擬機(jī)進(jìn)行軟件界面顯示及頁(yè)面跳轉(zhuǎn)的測(cè)試,最后使用Android Studio對(duì)軟件進(jìn)行打包,把打包好的軟件安裝在測(cè)試手機(jī)上,進(jìn)行藍(lán)牙通信功能測(cè)試。
2 藍(lán)牙通信界面設(shè)計(jì)
如圖2所示的界面,布局文件放在主目錄下,res文件夾下的layout文件下的activity_main.xml文件。下面對(duì)布局代碼進(jìn)行詳細(xì)的說明:
首先,打開activity_mian.xml文件進(jìn)行界面設(shè)計(jì),針對(duì)布局代碼及按鈕代碼進(jìn)行編寫,采用線性布局(LinearLayout);
然后通過以下語(yǔ)句進(jìn)行顯示內(nèi)容設(shè)置:android:layout_width="fill_parent"選擇界面;android:layout_height="0dp"設(shè)置高度;android:layout_weight="1"設(shè)置寬度;android:gravity="top"設(shè)置樣式等等。
本設(shè)計(jì)中用到了按鈕設(shè)置和文本顯示的設(shè)置。完成布局界面如圖3所示。
3 藍(lán)牙通信功能設(shè)計(jì)
開發(fā)安卓藍(lán)牙的過程中首先我們要調(diào)用藍(lán)牙,也就是平常我們所說的啟動(dòng)藍(lán)牙,啟動(dòng)藍(lán)牙后,需要查找藍(lán)牙設(shè)備與將要使用的設(shè)備進(jìn)行連接,連接前安卓藍(lán)牙設(shè)備將自動(dòng)掃描將要連接的設(shè)備,此時(shí)需要開啟安卓藍(lán)牙設(shè)備中的被發(fā)現(xiàn)功能,由于安卓藍(lán)牙設(shè)備的保密性,沒打開被發(fā)現(xiàn)這個(gè)功能時(shí),安卓藍(lán)牙設(shè)備是不能夠被外部藍(lán)牙發(fā)現(xiàn)的。最后就可以成功連接到外部設(shè)備。藍(lán)牙開發(fā)的整個(gè)流程如圖4所示。
要啟用了藍(lán)牙功能,需要采用表1的常數(shù),之后我們可以通過調(diào)用 getBondedDevices()方法來(lái)獲取配對(duì)設(shè)備列表。
表2是調(diào)用藍(lán)牙后,根據(jù)功能的需要對(duì)藍(lán)牙進(jìn)行各種設(shè)置的操作方法。使用以下方法,可以針對(duì)藍(lán)牙開啟發(fā)現(xiàn)的名稱、狀態(tài)、時(shí)間進(jìn)行設(shè)置。
Android平臺(tái)提供了藍(lán)牙API去執(zhí)行以下不同操作:掃描其他藍(lán)牙設(shè)備,獲取配對(duì)設(shè)備列表,連接到通過服務(wù)發(fā)現(xiàn)其他設(shè)備。Android提供了BluetoothAdapter類來(lái)進(jìn)行藍(lán)牙的通信。調(diào)用創(chuàng)建對(duì)象的靜態(tài)方法getDefaultAdapter()來(lái)實(shí)現(xiàn)手機(jī)藍(lán)牙通信的調(diào)用需要采用以上的常數(shù)和方法,并使用匿名內(nèi)部類的方式進(jìn)行系統(tǒng)藍(lán)牙的調(diào)用。
4 系統(tǒng)測(cè)試
本設(shè)計(jì)測(cè)試主要是客戶端實(shí)機(jī)測(cè)試,包括界面性能的測(cè)試,元素加載性能的測(cè)試和功能可用性的測(cè)試等。由于條件限制,本論文的測(cè)試主要是通過小部分的手機(jī)性能測(cè)試。測(cè)試部分主要為活動(dòng)的打開與銷毀,后臺(tái)的運(yùn)行等測(cè)試。如果客戶端從創(chuàng)建活動(dòng),開始活動(dòng),恢復(fù)活動(dòng),后臺(tái)運(yùn)行,以及活動(dòng)停止和銷毀能夠正常在手機(jī)端運(yùn)行,就說明實(shí)機(jī)測(cè)試通過。實(shí)機(jī)測(cè)試在五部安卓手機(jī)上進(jìn)行,運(yùn)行良好,符合預(yù)期情況,連接情況如圖5、6所示。
5 結(jié)束語(yǔ)
Android平臺(tái)包含了藍(lán)牙框架,可以使設(shè)備通過無(wú)線方式與其他藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)交換。藍(lán)牙通信在生活中的應(yīng)用十分廣泛,幾乎可以用于身邊所有的無(wú)線設(shè)備。當(dāng)然本論文的闡述也十分有限,闡述調(diào)用藍(lán)牙的設(shè)計(jì)也只適用在安卓系統(tǒng)中,并不適合所有設(shè)備連接的調(diào)用,并且在開發(fā)安卓藍(lán)牙通信的過程中,有些調(diào)用安卓藍(lán)牙的類和方法以及個(gè)性化的設(shè)計(jì),還要進(jìn)一步學(xué)習(xí)研究,以獲得更深層次的理解,來(lái)開發(fā)更加優(yōu)質(zhì)的安卓藍(lán)牙客戶端應(yīng)用。
參考文獻(xiàn):
[1]陳甫.Android Studio應(yīng)用[J].電腦知識(shí)與技術(shù),2014(24).
[2]雷擎,伊凡.基于Android平臺(tái)的移動(dòng)互聯(lián)網(wǎng)開發(fā)[M].清華大學(xué)出版社,2014.
[3]孔佑?xùn)|.智能家居之手持機(jī)軟件設(shè)計(jì)[D].西安電子科技大學(xué),2013.
[4]陳軍.嵌入式家居視頻監(jiān)控遠(yuǎn)程控制的研究與實(shí)現(xiàn)[D].湖南大學(xué),2013.
[5]何宗見.基于Android的移動(dòng)健康服務(wù)系統(tǒng)研究與設(shè)計(jì)[D].杭州師范大學(xué),2013.
[6]王陽(yáng).基于Android的室內(nèi)WiFi定位系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南京大學(xué),2016.
[7]彭保基.基于藍(lán)牙及Android的便攜式心電儀的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2014.