基于Android健康服務(wù)終端藍(lán)牙傳輸軟件的設(shè)計(jì)
mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter();
如果藍(lán)牙可用,則mBluetoothAdapter不為空,然后判斷藍(lán)牙是否打開(kāi),若未打開(kāi),則提示用戶打開(kāi)藍(lán)牙。

到此,藍(lán)牙設(shè)備已經(jīng)打開(kāi)。
在Android應(yīng)用程序開(kāi)發(fā)中,若要建立兩個(gè)藍(lán)牙設(shè)備的連接,必須實(shí)現(xiàn)客戶端和服務(wù)器端代碼。一個(gè)用來(lái)開(kāi)啟服務(wù)監(jiān)聽(tīng),一個(gè)發(fā)送連接請(qǐng)求。當(dāng)它們都擁有一個(gè)藍(lán)牙套接字在同一RFECOMM信道上時(shí),說(shuō)明它們之間已經(jīng)建立好連接。服務(wù)器端采用accept()方法來(lái)建立連接。由于accept()方法是一種阻塞調(diào)用,因此不應(yīng)該放在主Acitvity里,要新建一個(gè)線程來(lái)管理。

而客戶端則采用connect()方法來(lái)建立連接。同樣也是一種阻塞調(diào)用,同樣需要新建一個(gè)線程來(lái)管理。

當(dāng)設(shè)備連接上以后,每個(gè)設(shè)備都擁有各自的Bluetoothsocket?,F(xiàn)在就可以實(shí)現(xiàn)設(shè)備之間數(shù)據(jù)共享了。同樣讀取和寫(xiě)操作都是阻塞調(diào)用,需要建立一個(gè)專(zhuān)用的線程來(lái)管理。


評(píng)論