這一學期收了兩組專題生,這兩組的題目都是訂在手機藍牙互連的對戰遊戲APP,一組是比較定位在偏體感的遊戲(主要會應用到藍牙與加速度感應器),而另一組則是定位在卡片遊戲進行的輔助系統(主要會應用到藍牙與相機)。既然兩組都會用到手機藍牙的互連,所以我就寫了一個很簡易的藍牙聊天室,讓專題生能了解藍牙互連與傳送資料的方式(我超認真!)。


上圖是大概的畫面配置,在APP中定義了三個變數ChatText(使用者傳送的聊天文字)、Mode(記錄目前是伺服或是客戶模式)、DeviceMAC(記錄藍牙的MAC)

定義了兩個函數BTconnect(藍牙連線、切換按鈕上文字、顯示連線訊息),Timelabel(產生聊天文字前的時間字串)

螢幕初始化時,做一些文字的切換、由TinyDB中取得預存值、顯示提示訊息

利用ErrorOccurred事件,補抓在主畫面中的錯誤並顯示訊息

在ListPicker使用前先把已配對的藍牙列表放進ListPicker之中,在使用ListPicker選擇後將藍牙MAC儲入TinyDB備用,也將MAC值存入DeviceMAC中

當有其他手機透過藍牙連上擔任伺服模式的手機時,此手機所進行的工作

Clock物件的用處就是每隔1秒檢查連線狀況,根據手機設定的模式(伺服或是客戶模式)顯示訊息及相對應的設定

在設成伺服模式的手機上,只有CheckBox被勾選了,設為客戶模式的手機才可以連的上

Button1設計成兩個用途,連線與斷線都是用這個按扭

Button2主要是設計成來切換不同的模式

Button3主要是用來在手機間傳送訊息

藍牙聊天室APP的使用,必需有一台行動裝置做為伺服器(切換為伺服模式),勾選以連線以供其他設備連線(可多台連線)

其他行動裝置設為客戶模式,按連線即可連上擔任伺服器的行動設備

連上線後就可以開始互傳訊息了

其實這個藍牙聊天室是相當粗糙的,不過用來做為專題的起始應該是不錯的一個出發點,因為有好多好多的地方可以改善,哈哈哈!