手機APP編程之app inventor實例(三),利用藍牙實現聊天室功能,藍牙雙向通信

我們知道App inventor 是當下比較受歡迎的手機編程工具,當然它也可以實現許許多多有意思的東西,今天我們用它來編寫一個聊天室APP。

一、實現原理

App Inventor 提供了兩個藍牙通信組件:藍牙客戶端、藍牙服務器,這兩個組件配合使用,可以實現簡單的通信功能。

簡單的說就是,可以將藍牙服務器用於創建聊天室,藍牙客戶端用於加入聊天室。
基本界面如下

X

二、使用說明書

兩個手機均需要下載該APP,在此之前,需要藍牙配對成功。


三、與藍牙服務器相關的代碼


【1】全局變量「角色」
用來表明當前設備在通信中的角色:服務器或客戶端。
【2】「在線」設置
當選中「在線」複選框時,表明本設備現在充當服務器的角色,可以接受來自其他設備的連接請求。一旦該設備成爲服務器,「選擇列表」及「斷開連接」組件將不可用。



【3】接收連接事件
當藍牙服務器收到連接請求時,將觸發該事件。如果連接成功,即連接狀態值爲真,則向所連接的設備發送「已連接到服務器,可以開始聊天了...」,並開始啓用計時器,隨時監聽客戶端發來的消息;如果連接不成功,則不啓用計時器。如圖3所示。

 

四、與藍牙客戶端相關的代碼


【1】當「選擇列表」準備選擇時
當點擊「選擇列表」時,將打開一個列表,裏面列出了所有已配對的藍牙設備,用戶可以選擇其一進行連接。

【2】當「選擇列表」完成選擇時
當用戶選擇了一個藍牙設備,意味着用戶向所選設備發出了連接請求,「讓藍牙客戶端連接設備」的結果可能是真(連接成功),也可能是假(連接失敗)。如果成功,則設全局變量「角色」值爲「客戶端」,並啓動計時器;如果失敗,則不啓動計時器。



 


四、發送消息


【1】全局變量「聊天內容」與自定義過程「拼字符串」:以適當的方式來呈現聊天記錄,即,爲聊天內容添加換行符,並表明發言者身份。

【2】發送一條消息

 

五、接收消息


 

六、清空聊天記錄

 


到這裏就結束了,每週更新,謝謝觀看。