基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)
本文關(guān)鍵詞:基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù),,由筆耕文化傳播整理發(fā)布。
基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)
-3802-
中國(guó)醫(yī)學(xué)物理學(xué)雜志
第29卷第6期
2012年11月
toothAdapter.getRemoteDevice()得到指定地址的BluetoothDevice。該類實(shí)際上是一個(gè)藍(lán)牙硬件地址簿,其操作都是遠(yuǎn)程藍(lán)牙硬件地址使用Blue-toothAdaphter來創(chuàng)建一個(gè)BluetoothDevice對(duì)象。在程序開始時(shí),注冊(cè)搜索已完成(ACTION_DISCOV-ERY_FINISHED)和發(fā)現(xiàn)設(shè)備(ACTION_FOUND)兩個(gè)廣播接收器BroadcastReceiver,然后通過線程來控制藍(lán)牙設(shè)備的搜索(startDiscovery),當(dāng)搜索中有觸發(fā)
圖1遠(yuǎn)程醫(yī)療系統(tǒng)
Fig1Telemedicine
system
上面兩個(gè)接收器事件,就直接傳遞給接收器進(jìn)行保存,程序流程如圖2。
Android是Google基于Linux平臺(tái)的開源手機(jī)
操作系統(tǒng),采用軟件堆層的架構(gòu)[3],主要分為四層:
●底層(LinuxKernel)以Linux2.6內(nèi)核工作為基礎(chǔ),包括內(nèi)存管理、進(jìn)程管理和驅(qū)動(dòng)模型等,此層提供了藍(lán)牙驅(qū)動(dòng)。
●系統(tǒng)運(yùn)行庫層(Library),包括C/C++庫以及Android運(yùn)行庫。Dalvik不需要很快的CPU計(jì)算速率和大量的內(nèi)存空間,非常適合在移動(dòng)終端上使用。
●應(yīng)用框架層(ApplicationFrame),編寫核心應(yīng)用時(shí)所使用的API框架。
●應(yīng)用層(Applications)應(yīng)用是由Java語言編寫的運(yùn)行在虛擬機(jī)上的程序,本文在該層實(shí)現(xiàn)生理數(shù)據(jù)傳輸?shù)拈_發(fā)。
Android在2.0版本開始支持藍(lán)牙,有關(guān)藍(lán)牙的類和接口都位于android.bluetooth包中,具體功能如表1。
表1藍(lán)牙主要功能包(android.bluetooth)
2
搜索設(shè)備流程圖
Fig2searchingdevicesprogramflowchat
2.2數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)圖
藍(lán)牙之間的數(shù)據(jù)傳輸采用基于RFCOMM協(xié)議的Socket連接實(shí)現(xiàn)。在Android的藍(lán)牙API中Blue-toothServerSocket和BluetoothSocket類可以實(shí)現(xiàn)Socket通信。
手機(jī)服務(wù)器可通過線程使用listenUsingRfcommWithServiceRecord()方法來注冊(cè)一個(gè)具有名稱和唯一識(shí)別的UUID號(hào)BluetoothServerSocket,然后利用BluetoothServerSocket.accept()方法一直監(jiān)聽生理參數(shù)檢測(cè)模塊的請(qǐng)求,得到請(qǐng)求后,利用InputStream.re-ad(byte[])方法接收檢測(cè)模塊的生理數(shù)據(jù),并對(duì)數(shù)據(jù)做出相應(yīng)的處理,最終調(diào)用BluetoothServerSocket.close()關(guān)閉藍(lán)牙服務(wù)器,程序流程如圖3。
Tab.1BluetoothAPIinAndroid功能包
說明藍(lán)牙適配器(本地)藍(lán)牙服務(wù)類
藍(lán)牙設(shè)備(遠(yuǎn)程藍(lán)牙設(shè)備)監(jiān)聽藍(lán)牙連接的類藍(lán)牙連接類
BluetoothAdapter
BluetoothClass.ServiceBluetoothDevice
BluetoothServerSocketBluetoothSocket
2實(shí)現(xiàn)過程
2.1藍(lán)牙基本操作的實(shí)現(xiàn)
本文采用Android2.2版本和Eclipse3.5工具進(jìn)行開發(fā)。在Android系統(tǒng)中要實(shí)現(xiàn)藍(lán)牙的功能,要做一些準(zhǔn)備工作。首先,須在AndroidManifest.xml中聲
明其權(quán)限。其次,須先取得藍(lán)牙適配器,本地藍(lán)牙適配器可通過getDefaultAdapter()獲得,遠(yuǎn)程藍(lán)牙適配器需要使用BluetoothDevice類。在取得藍(lán)牙適配器之后,可請(qǐng)求開啟藍(lán)牙并開始搜索周圍藍(lán)牙設(shè)備。
在搜索遠(yuǎn)程藍(lán)牙設(shè)備時(shí),可以先使用Blue-
圖3服務(wù)器流程圖
Fig3theseverprogramflowchat
本文關(guān)鍵詞:基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù),由筆耕文化傳播整理發(fā)布。
本文編號(hào):154142
本文鏈接:http://www.lk138.cn/yixuelunwen/swyx/154142.html