一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

簡易藍牙聊天工具①:聊天服務(wù)器

 老巫婆圖書館 2021-07-06

最近有很多人關(guān)心用app inventor2(以下簡稱AI2)進行藍牙通信的問題,這里制作了一個簡易的聊天工具,來說明如何使用AI2所提供的藍牙組件,來實現(xiàn)信息的發(fā)送與接收。

在日常生活中,我們經(jīng)常提及“藍牙”這個詞,得知它是一種通信手段,但并不了解通信背后的機制。在AI2中有兩個藍牙組件:藍牙客戶端、藍牙服務(wù)器,為什么需要兩種類型的藍牙組件?難道兩部通信中的藍牙設(shè)備,具有不一樣的角色?答案是肯定的。那么服務(wù)器與客戶端究竟有哪些區(qū)別呢?

藍牙通信過程分為三個步驟:

  1. 設(shè)備配對

  2. 建立連接

  3. 消息收發(fā)

兩部手機之間要想實現(xiàn)藍牙通信,必須首先進行配對,配對成功之后才有可能建立連接。

建立連接也稱“握手”,就像打電話一樣,一方撥號,另一方必須摘機或按下接聽按鍵,才能實現(xiàn)通話。此時,撥號的一方是通信的發(fā)起者(請求者-requester),接聽的一方是通信的應答者(響應者responser),對應于藍牙通信,前者(發(fā)起者)就是客戶端,后者(應答者)就是服務(wù)器。

一旦建立了連接,接下來就可以開始收發(fā)消息了,此時,客戶端與服務(wù)器之間的關(guān)系是對等的,任何一方都可以發(fā)送消息,同時也可以接收消息。

從AI2中的兩個藍牙組件的代碼塊中,我們可以得知,兩個組件都可以發(fā)送及接收數(shù)字、文本以及字節(jié)碼,在這個建議聊天工具的例子中,只涉及到文本的收發(fā)。

為了便于識別兩個藍牙組件的差異,我們將制作兩個應用,分別實現(xiàn)服務(wù)器及客戶端的功能。首先實現(xiàn)服務(wù)器功能。

1、功能描述

  • 應用啟動時勾選“等待連接”復選框,開啟藍牙服務(wù),等待客戶端連接,禁用斷開連接按鈕;

  • 當收到請求完成連接時,啟用斷開連接按鈕,啟用計時器;

  • 在計時事件中偵聽服務(wù)器收到的字節(jié)數(shù),如果字節(jié)數(shù)大于0,則更新聊天記錄;

  • 當收到“斷開連接”消息時,取消勾選“等待連接”復選框,顯示“已斷開連接”,禁用斷開連接按鈕,禁用計時器;

  • 再次勾選“等待連接”復選框時,開啟藍牙服務(wù),等待客戶端連接;

  • 點擊斷開連接按鈕,服務(wù)器向客戶端發(fā)送“斷開連接”消息,與客戶端斷開連接,禁用計時器,禁用“斷開連接”按鈕。

2、界面設(shè)計


3、組件的命名及設(shè)置

4、屏幕初始化

在設(shè)計視圖中已經(jīng)勾選了接受連接復選框,因此這里直接調(diào)用藍牙服務(wù)器組件的“接受連接請求”過程,開啟藍牙服務(wù)。

5、接受連接請求

當藍牙服務(wù)器收到連接請求時,將自動完成連接,自定義過程“連接成功”用于設(shè)置用戶界面組件的狀態(tài),并啟用計時器。

6、在計時事件中偵聽消息

每隔1秒鐘,服務(wù)器執(zhí)行一次偵聽操作——獲取接收字節(jié)數(shù),如果藍牙客戶端在此前向服務(wù)器發(fā)送了消息(數(shù)字、文本或字節(jié)碼),那么服務(wù)器的接受字節(jié)數(shù)將大于零。

在聊天客戶端應用中,可能有三種操作:請求連接、發(fā)送消息或斷開連接,后面兩種操作都會向服務(wù)器發(fā)送文本消息:當執(zhí)行斷開連接操作時,會首先向服務(wù)器發(fā)送“斷開連接”四個字,然后再與服務(wù)器斷開連接。因此在上圖中,當接收到不同內(nèi)容的消息時,會執(zhí)行不同的操作——斷開連接,或者更新聊天記錄。

斷開連接過程首先讓藍牙服務(wù)器停止接受連接,然后設(shè)置用戶界面組件的狀態(tài),并禁用計時器。

更新聊天記錄過程會根據(jù)“發(fā)送”參數(shù)(邏輯值)判斷消息來源,如果是聊天服務(wù)器發(fā)送的消息,“發(fā)送”=真,則在聊天內(nèi)容前添加字符“服務(wù)器:”,否則添加字符“客戶端:”。

7、重新開啟藍牙服務(wù)

無論是客戶端還是服務(wù)器發(fā)起的斷開連接操作,都會導致取消勾選“接受連接選框”,此時可以重新勾選該復選框,讓藍牙服務(wù)器恢復服務(wù)狀態(tài)。當服務(wù)器與客戶端處于連接狀態(tài)時,也可以取消勾選該復選框,從而主動斷開連接。

8、主動斷開連接

當點擊斷開連接按鈕時,服務(wù)器首先向客戶端發(fā)送消息——“斷開連接”,然后斷開與客戶端之間的連接,并調(diào)用自定義過程“斷開連接”。這一功能與復選框的取消勾選有相似之處,都會中斷連接,但手段不同,前者(按鈕斷開)是斷開連接,而后者(復選框)是終止服務(wù)。

9、發(fā)送消息

當用戶在聊天內(nèi)容輸入框中輸入了文字,并點擊提交按鈕時,藍牙服務(wù)器將向客戶端發(fā)送消息,并更新聊天記錄。

10、處理連接失敗事件

以上是聊天服務(wù)器應用的實現(xiàn)過程,下一篇文章將講述聊天客戶端應用的實現(xiàn)過程,敬請期待。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲午夜精品视频观看| 欧美尤物在线视频91| 精产国品一二三区麻豆| 日本在线 一区 二区| 老外那个很粗大做起来很爽| 国产高清在线不卡一区| 欧美一区二区三区播放| 国产专区亚洲专区久久| 初尝人妻少妇中文字幕在线| av免费视屏在线观看| 中文字幕在线区中文色| 亚洲精品国产精品日韩| 国产精品国三级国产专不卡| 欧美一级特黄特色大色大片| 色婷婷国产精品视频一区二区保健 | 日韩国产欧美中文字幕| 亚洲伊人久久精品国产| 午夜福利视频六七十路熟女| 日韩1区二区三区麻豆| 婷婷激情四射在线观看视频 | 日本加勒比中文在线观看| 亚洲伦理中文字幕在线观看| 欧美一区二区不卡专区| 久久精品国产第一区二区三区| 偷拍偷窥女厕一区二区视频| 欧美日韩国产精品黄片| 人人爽夜夜爽夜夜爽精品视频| 久久这里只精品免费福利| 欧美三级大黄片免费看| 正在播放玩弄漂亮少妇高潮| 人妻熟女欲求不满一区二区| 婷婷基地五月激情五月| 亚洲中文字幕综合网在线| 国产亚洲视频香蕉一区| 久久精品免费视看国产成人| 俄罗斯胖女人性生活视频| 亚洲中文字幕三区四区| 欧美二区视频在线观看| 青青草草免费在线视频| 国产不卡一区二区四区| 免费观看一级欧美大片|