基于藍牙與Android設備的控制系統設計
3 Android設備軟件設計
Android2.2版本以上才能很好的支持藍牙功能,Android上的應用程序一般采用Java語(yǔ)言開(kāi)發(fā),編程環(huán)境一般采用Eclipse.
Android應用程序需要使用藍牙功能,必須在A(yíng)ndroidManifest.xml中要申請兩個(gè)權限:BLUETOOTH_ADMIN和BLUETOOTH.具體格式如下:
ission.BLUETOOTH_ADMIN/>me=android.permission.BLUETOOTH/>
BLUETOOTH_ADMIN權限允許Android應用程序啟動(dòng)發(fā)現設備或者進(jìn)行藍牙功能的設置;BLUETOOTH權限是Android應用程序執行藍牙通信必須具有的權限,例如接受連接和傳送數據。大多數應用程序都需要這個(gè)權限,才能查找當地的藍牙設備。
由于需要和下位機的藍牙模塊連接,在應用程序中需要實(shí)現主設備功能。具體的連接流程是:
(1)在應用程序中檢查設備的藍牙功能是否開(kāi)啟,如果未開(kāi)啟,則打開(kāi)藍牙功能;
(2)查找設備附近等待連接的藍牙設備,顯示查找到的藍牙設備的物理地址(以前沒(méi)有連接過(guò)的設備)或藍牙設備的名稱(chēng);
(3)選擇想要連接的藍牙設備,如果是第一次連接這個(gè)目標設備系統會(huì )自動(dòng)發(fā)起一個(gè)配對過(guò)程,彈出輸入連接密碼的對話(huà)框,輸入“0000”,等待對方校驗密碼,完成配對,然后進(jìn)行連接。
(4)應用程序接收到連接成功,就可以通過(guò)生成的BluetoothServerSocke和下位機進(jìn)行數據傳輸。需要連接的藍牙模塊是藍牙串口,因此應用程序中定義的UUID必須符合藍牙串口的UUID,這樣連接才會(huì )被接受。因為accept()調用是一個(gè)阻塞的調用,應用程序所有響應在調用返回之前會(huì )被阻塞,因此一定不能在主線(xiàn)程中進(jìn)行調用,通常是在一個(gè)新的線(xiàn)程中做所有的工作從而避免應用程序主線(xiàn)程的阻塞。主要代碼如下;
(5)關(guān)閉server socket,釋放serversocket和它占用的資源,結束應用程序。
4結束語(yǔ)
本文提出了基于藍牙與Android設備的無(wú)線(xiàn)控制系統模型,分析了藍牙網(wǎng)絡(luò )的一般結構,采用通用的藍牙模塊實(shí)現了無(wú)線(xiàn)終端設計,給出了Android設備的藍牙串行通訊軟件框架。憑借藍牙的傳輸高效并且快速等特點(diǎn),該系統具有很好的靈活性,能廣泛應用于工業(yè)現場(chǎng)控制等多個(gè)領(lǐng)域,尤其是一些需要數據傳輸又不能很方便的布設通訊電纜的場(chǎng)合,具有廣闊的發(fā)展空間。
主要代碼
評論