999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于Android藍牙技術的點對點聊天工具

2021-02-26 16:53:54黃麗麗
電腦與電信 2021年11期
關鍵詞:界面設備

楊 敏 黃麗麗

(1.黔東南民族職業技術學院,貴州 凱里 556000;2.貴州電子信息職業技術學院,貴州 凱里 556000)

1 引言

在如今這個全球信息化的時代背景下,網絡幾乎遍布了世界的每一個角落,給人類的工作生活帶來了翻天覆地的變革。聊天作為人類日常生活中一個最普通的行為,受信息化的影響首當其沖。近年來,網絡上涌現出一大批功能強大的聊天工具,但這些工具大多都必須依托于因特網,在某些特定的環境下使用受限,因此開發一款無需外網的聊天工具具備一定的現實意義。

2 系統環境

2.1 Android系統

安卓(Android)是一種基于Linux 內核(不包含GNU 組件)的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦[1]。

2.2 藍牙技術

藍牙是一種支持設備短距離通信(一般是10m 之內)的無線電技術,可以在包括移動電話、PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。藍牙的標準是IEEE802.15,工作在2.4GHz 頻帶,帶寬為1Mb/s[2]。

3 設計與實現

3.1 工作流程

兩臺移動設備安裝并打開藍牙聊天工具,開啟藍牙功能,搜索附近可用的藍牙設備,發現對方后一方發起配對請求,雙方確認Pin碼后完成配對,設備由可用設備列表轉移至已配對的設備列表,表示可以連接該設備,然后其中一臺移動設備作為服務端開啟連接監聽,另一臺移動設備則作為客戶端長按已配對的設備列表中對應的列表項向服務端發起連接請求,連接成功之后雙方自動跳轉至聊天界面,可互相發送文本信息。

3.2 界面設計

主界面(圖1)參考華為P9手機藍牙設置界面進行設計,采用自上而下的布局形式,界面元素依次為藍牙開關,設備名稱,已配對設備列表,可用設備列表,掃描設備按鈕和開啟監聽按鈕。

圖1 應用主界面

聊天界面則跟微信聊天界面相似,頂部顯示連接設備的藍牙名稱,白色背景文本為接收到的消息,灰色背景文本為本機發出的消息,詳見圖2,圖3。

圖2 設備1聊天界面

圖3 設備2聊天界面

3.3 Android藍牙開發

Android系統支持藍牙通訊棧,擁有藍牙模塊的Android設備和其他的藍牙設備之間可以實現無線數據傳輸。應用程序通過Android 藍牙API 來調用藍牙功能,實現P2P 或多端無線連接[3]。

一般來說,Android 應用程序之間實現藍牙通訊需要執行以下四個步驟:

(1)打開藍牙

(2)搜索附近可用設備

(3)設備間建立連接

(4)設備間數據交換

在Android系統中,所有的藍牙API都位于android.bluetooth包下面,本次開發用到了以下四個常用類:

BluetoothAdapter:表示本地藍牙適配器,是所有藍牙交互的入口。應用程序通過BluetoothAdapter可以發現其他藍牙設備,查詢已配對的設備列表,使用一個已知的MAC地址來實例化一個藍牙設備,以及創建一個藍牙服務器套接字來處理設備間的通信[3]。

BluetoothDevice:表示一個遠程藍牙設備,應用程序使用該類可以查詢關于設備名稱、設備地址和連接狀態等設備信息。

BluetoothSocket:表示一個藍牙Socket 的接口(和TCP Socket 類似),它允許藍牙設備之間通過輸入輸出流進行數據交換。

BluetoothServerSocket:表示一個開放的服務端socket,它監聽其他藍牙設備發起的連接請求。為了連接兩臺Android 設備,其中一臺設備必須使用該類創建一個服務端socket,另一臺設備則向該設備發起一個連接請求,若連接成功,BluetoothServerSocket 將會返回一個已連接的Bluetooth-Socket[3]。

3.4 技術難點

3.4.1 權限

根據SDK中的文檔說明,Android應用想要使用藍牙特性,只需要申請BLUETOOTH 和BLUETOOTH_ADM IN 兩個權限即可保證藍牙的正常的工作,包括藍牙功能的開啟和關閉、搜索可用設備、數據通信等,但出于用戶信息安全方面的考慮,Android6.0 之后所有需要訪問硬件唯一標識符的地方都需要申請位置權限(ACCESS_FINE_LOCATION 或者ACCESS_COARSE_LOCATION),藍牙權限屬于NORMAL級別,在清單文件中聲明即可,但位置權限屬于DANGEROUS 級別,除了在清單文件中聲明之外,還需要在應用程序代碼中進行動態申請,并跟蹤用戶對權限的確認結果[4]。

3.4.2 檢測藍牙可用性

BluetoothAdapter 類的靜態方法getDefaultAdapter()會返回一個表示本機藍牙適配器的BluetoothAdapter 對象,該對象在Android 系統中是唯一的,應用程序可以通過它與設備藍牙模塊進行交互,若getDefaultAdapter()返回null,則表示當前設備不具備藍牙模塊,即不支持藍牙功能。

3.4.3 開啟藍牙

BluetoothAdapter 對象的isEnabled()方法返回一個布爾值,表示當前設備的藍牙功能是否開啟,若返回值為false,則需要請求開啟藍牙,首先創建一個Intent對象,其構造方法中傳入BluetoothAdapter.ACTION_REQUEST_ENABLE,再調用startActivityForResult()方法將Intent 對象傳入即可發起一次開啟系統藍牙的請求。

3.4.4 搜索可用設備

應用程序可以使用BluetoothAdapter對象來搜索附近的藍牙設備(startDiscovery)或者查詢已配對的藍牙設備(get-BondedDevices)。

設備搜索是一個瀏覽流程,它查找附近可用的藍牙設備,然后請求設備的相關信息。如果一個設備是允許被發現的,它將通過反饋一些數據來響應發現請求,例如設備名稱、唯一的MAC地址等。借助這些信息,搜索發起設備可以選擇和被發現的設備創建一個連接。

3.4.5 連接設備

兩臺藍牙設備之間的連接需要借助C/S(客戶端/服務端)機制來實現,因此其中一臺設備必須創建一個服務端socket(BluetoothServerSocket),而另一臺設備使用服務端設備的MAC地址來初始化一個連接。連接成功后,兩臺設備在相同的RFCOMM通道均持有一個相互連接的BluetoothSocket對象,并可以使用該對象中的輸入輸出流進行數據傳輸。

3.4.6 數據通信

兩臺設備成功連接后,各自都將持有一個相互連接的BluetoothSocket 對象,借助BluetoothSocket 對象可以輕易實現二進制數據傳輸。

分別調用BluetoothSocket 對象的getInputStream() 和getOutputStream()方法取出關聯的輸入輸出數據流對象,接著調用輸入流對象InputStream 的read(byte[])方法讀取設備發送過來的數據,或者調用輸出流對象OutputStream的w rite(byte[])方法向設備發送數據,實現雙向數據通信。

開發過程中還需要考慮一些實現的細節,舉個例子,數據讀取操作應該處于一個專屬的子線程中,因為read(byte[])方法是阻塞調用,放在主線程會引發ANR,嚴重影響用戶體驗。通常的做法是開啟一個子線程循環等待,如果收到數據則利用消息機制通知UI 線程更新顯示界面,直到設備斷開連接或者其中一方的BluetoothSocket被關閉。

4 結語

藍牙作為一種小范圍無線連接技術,能在設備間實現方便快捷、靈活安全、低成本、低功耗的數據通信和語音通信,而Android是當今主流的移動設備操作系統,文章從移動社交應用的角度,設計并實現了一種基于Android 藍牙技術的點對點聊天工具,在無網絡等特殊環境下有一定的應用價值。

猜你喜歡
界面設備
諧響應分析在設備減振中的應用
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
空間界面
金秋(2017年4期)2017-06-07 08:22:16
電子顯微打開材料界面世界之門
人機交互界面發展趨勢研究
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 国产一区成人| 亚洲精品午夜天堂网页| 午夜三级在线| 精品久久香蕉国产线看观看gif | 色男人的天堂久久综合| 福利片91| 国产麻豆精品在线观看| 亚洲成人在线免费观看| 91精品在线视频观看| 亚洲中文字幕在线精品一区| 中文字幕66页| 亚洲天堂高清| 国产精品理论片| 亚洲第一香蕉视频| 亚洲日本中文字幕乱码中文| 99精品这里只有精品高清视频| 日日拍夜夜嗷嗷叫国产| 五月婷婷丁香综合| 99热这里只有精品在线观看| 国产亚洲视频中文字幕视频| 日韩午夜片| 一区二区三区四区日韩| 久久久精品国产SM调教网站| 亚洲香蕉伊综合在人在线| 在线免费看黄的网站| 亚洲天堂视频在线观看免费| 亚洲最大看欧美片网站地址| 91丨九色丨首页在线播放| 人妻21p大胆| 亚洲人成日本在线观看| 高清欧美性猛交XXXX黑人猛交| 亚洲最大福利视频网| a级毛片网| 亚洲成人动漫在线观看| 婷五月综合| 欧美精品啪啪| 欧美成人综合在线| 国产女人综合久久精品视| 亚洲区第一页| 国产亚洲视频免费播放| 国产无套粉嫩白浆| 亚洲人精品亚洲人成在线| 国产激情无码一区二区APP| 尤物亚洲最大AV无码网站| 网久久综合| 一本色道久久88亚洲综合| 久久精品中文字幕少妇| 国产精品成人一区二区| 亚洲午夜福利在线| 沈阳少妇高潮在线| 成人一级黄色毛片| 国产本道久久一区二区三区| 久久无码高潮喷水| 国产女同自拍视频| 日韩视频福利| 玖玖免费视频在线观看| 伊人久久久久久久久久| 久久国产乱子| 2021国产乱人伦在线播放 | 亚洲成人网在线播放| 亚洲第一成年网| 亚洲开心婷婷中文字幕| 性欧美精品xxxx| 亚洲精品国产成人7777| 美女免费精品高清毛片在线视| 91小视频在线观看免费版高清| 中文无码伦av中文字幕| 日本欧美午夜| 国产一级精品毛片基地| 人妻丰满熟妇AV无码区| 日本午夜在线视频| 久久免费视频6| 一级毛片高清| 久久精品亚洲中文字幕乱码| 国产精品免费久久久久影院无码| 亚洲天堂网在线观看视频| 中文精品久久久久国产网址 | 91亚洲视频下载| 在线国产欧美| 久久婷婷综合色一区二区| 综合社区亚洲熟妇p| 综合色在线|