新四季網

基於Android系統及Wi‑FiDirect的實時協作數據共享系統的製作方法

2023-05-18 19:33:36 1


本發明屬於數據通信領域,具體地涉及一種基於Android系統及Wi-Fi Direct的實時協作數據共享系統。



背景技術:

Android設備就目前來說擁有較高的普及率,並且由於其自身的便攜性使得人們在生產和生活的協作更為方便。然而,對於野外的壞境或者是工業環境中,由於流動性等原因,我們不容易把無線區域網覆蓋到整個工作環境中,手機移動信號在野外被屏蔽的情況下則更難進行交流。

例如在較為偏遠的山區有一群遊客失蹤了,緊急組成的搜索隊分開尋找失聯人員,然而此時並沒有手機信號或者其他通訊工具,分布在大面積範圍內的人員無法及時的信息溝通和任務分派。

又或者是在一片大區域的工業環境中,幾個施工人員負責一件需要協同完成的任務,然而此時沒有手機信號和無線網絡,由於相隔較遠,無法及時溝通。

因此我們需要在不能連接到網際網路中同時移動信號也無法獲得的情況下,通過我們的移動智能設備如手機等進行即時而方便的信息交流。

Wi-Fi Direct通信協議是指允許設備無需通過無線路由器或者是移動數據網絡即可對等連接。建立對等連接後的設備可以進行數據傳輸等其他功能,通過合理的設置數據格式及靈活的Android設備間的數據流及控制流的交互機制,可以實現設備採集到的音視頻數據的靈活共享。與藍牙技術相同的地方在於,這種協議允許無線設備以P2P的形式互連,不過相比較藍牙在傳輸速度和傳輸距離上有大幅提升。由此可見,在中距離的不基於基礎網絡設施的無線通信中Wi-Fi Direct具有更好的應用前景。



技術實現要素:

針對上述技術問題,本發明目的是:提供一種基於Android系統及Wi-Fi Direct的實時協作數據共享系統,使得用戶可以在有效工作範圍內搜索到其他設備並建立起對等連接,建立連接的過程不需要依賴移動信號或者是無線熱點。當連接建立之後,設備之間可以進行實時視頻畫面傳輸和音頻對講功能的實時協作數據共享。

本發明的技術方案是:

一種基於Android系統及Wi-Fi Direct的實時協作數據共享系統,其特徵在於,包括:

Wi-Fi Direct模塊,通過Wi-Fi Direct進行設備搜索與匹配連接及管理;

Socket通信模塊,用於在已連接的設備間基於TCP協議的套接字進行數據傳輸;

實時視頻模塊,用於在成功匹配連接的設備中,通過TCP/IP網絡通信協議發送和接收實時視頻圖像;

語音對講模塊,用於在成功匹配連接的設備中,通過TCP/IP網絡通信協議發送和接收語音信息。

優選的,所述Wi-Fi Direct模塊包括:

Wi-Fi Direct啟動模塊,將頁面跳轉至系統的Wi-Fi設置界面,用於設置打開或者關閉;

Wi-Fi Direct搜索模塊,當打開Wi-Fi Direct後,註冊一個廣播監聽器監聽設備當前的連接狀態和設備信息並把附近的可用設備顯示在列表中,當設備的當前信息改變時,觸發相應的事件;

Wi-Fi Direct連接模塊,通過調用相應的API函數進行連接請求建立對等連接小組,建立小組的過程中確立伺服器端和客戶端。

優選的,所述Socket通信模塊的通信包括伺服器端Socket通信和客戶端Socket通信,所述伺服器端Socket通信包括:

a) 創建伺服器Socket實例對象用於監聽設定的埠;

b) 創建一個線程用於監聽客戶端的連接請求,等待客戶端連接;

c) 成功建立連接後,進行讀取的數據和寫入;

所述客戶端Socket通信包括:

1)創建客戶端Socket實例對象,設定網絡地址和埠號來指定對應的伺服器端的伺服器Socket實例對象;

2)主動連接到服務端的Socket;

3)成功建立連接後,進行讀取的數據和寫入。

優選的,所述實時視頻模塊包括:

圖像採集模塊,通過Android的onPreviewFrame重載函數獲取攝像頭的當前圖像,對圖像進行壓縮和裁剪,轉換成文件線程類中傳輸格式數據,發送圖像數據;

圖像顯示模塊,接收到圖像數據後,對圖像數據進行解碼還原,通過圖像展示組件顯示圖像。

優選的,所述語音對講模塊包括:

音頻採集模塊,創建音頻錄製的實例對象用於錄音設置,根據觸發事件開始錄音線程,並把採集的音頻信息存入buffer緩衝區,通過傳輸線程根據觸發事件將採集的音頻信息進行發送;

音頻播放模塊,創建音頻設置的實例對象對播放時的參數進行設置,當子線程獲取到接收到的音頻數據後,通過相應的API函數方法將獲取到的內容以音頻形式播放。

本發明又公開了一種基於Android系統及Wi-Fi Direct的實時協作數據共享方法,其特徵在於,包括以下步驟:

S01:通過Wi-Fi Direct進行設備搜索與匹配連接及管理;

S02:在已連接的設備間基於TCP協議的套接字進行數據傳輸;

S03:在成功匹配連接的設備中,通過TCP/IP網絡通信協議發送和接收實時視頻圖像和語音信息。

優選的,所述步驟S01包括:

將頁面跳轉至系統的Wi-Fi設置界面,用於設置打開或者關閉;

當打開Wi-Fi Direct後,註冊一個廣播監聽器監聽設備當前的連接狀態和設備信息並把附近的可用設備顯示在列表中,當設備的當前信息改變時,觸發相應的事件;

通過調用相應的API函數進行連接請求建立對等連接小組,建立小組的過程中確立伺服器端和客戶端。

優選的,所述步驟S02包括伺服器端Socket通信和客戶端Socket通信,所述伺服器端Socket通信包括:

a) 創建伺服器Socket實例對象用於監聽設定的埠;

b) 創建一個線程用於監聽客戶端的連接請求,等待客戶端連接;

c) 成功建立連接後,進行讀取的數據和寫入;

所述客戶端Socket通信包括:

1)創建客戶端Socket實例對象,設定網絡地址和埠號來指定對應的伺服器端的伺服器Socket實例對象;

2)主動連接到服務端的Socket;

3)成功建立連接後,進行讀取的數據和寫入。

優選的,所述步驟S03包括:

通過Android的onPreviewFrame重載函數獲取攝像頭的當前圖像,對圖像進行壓縮和裁剪,轉換成文件線程類中傳輸格式數據,發送圖像數據;

接收到圖像數據後,對圖像數據進行解碼還原,通過圖像展示組件顯示圖像;

創建音頻錄製的實例對象用於錄音設置,根據觸發事件開始錄音線程,並把採集的音頻信息存入buffer緩衝區,通過傳輸線程根據觸發事件將採集的音頻信息進行發送;

創建音頻設置的實例對象對播放時的參數進行設置,當子線程獲取到接收到的音頻數據後,通過相應的API函數方法將獲取到的內容以音頻形式播放。

與現有技術相比,本發明的優點是:

1、使用Wi-Fi Direct技術的行動裝置不需要通過無線區域網路或者GPRS基站等其他基礎網絡設施,也不需要通過網線將設備限制在一個固定的路由器或者中心節點上,Wi-Fi Direct設備可以隨時隨地進行對等連接。

2、可以簡單方便的設備發現功能。使用Wi-Fi Direct技術的行動裝置能夠搜索對等設備,同時將在有效工作範圍的設備信息展示出來,用戶可以方便地選擇想要連接的設備。

3、Wi-Fi Direct設備的連接是簡單而安全的。因為Wi-Fi Direct設備採用的是安卓設備的WPS機制,所以相應簡化了在對等設備之間建立連接的過程。

4、Wi-Fi Direct設備的採用的是P2P的數據傳輸模式,因為不用接入無線網絡,從而避免了通道的阻塞。

5、應用前景廣闊,未來越來越多的設備會使用Android系統,比如手機、相機、顯示器和印表機等等。通過Wi-Fi Direct的通信方式,可以使用一臺智慧型手機在沒有無線區域網的情況下與周圍的其他智能設備進行數據交互。比如,通過移動智慧型手機與印表機通過Wi-Fi Direct進行互連,可以很方便的列印出我們手機中的照片或者文檔;又比如,在辦公室裡,員工可以通過基於Wi-Fi Direct的行動裝置互連來進行會議文件或者視頻音頻等文件的傳輸。Wi-Fi Direct標準的推出,為未來的移動智能辦公、智能家居生活等方面提供了非常大的幫助。

附圖說明

下面結合附圖及實施例對本發明作進一步描述:

圖1為本發明基於Android系統及Wi-Fi Direct的實時協作數據共享系統的層次結構圖;

圖2為本發明基於Android系統及Wi-Fi Direct的實時協作數據共享系統的模塊結構圖;

圖3為本發明廣播接收器的監聽流程圖;

圖4為本發明設備搜索流程圖;

圖5為本發明圖像接收流程圖。

具體實施方式

為使本發明的目的、技術方案和優點更加清楚明了,下面結合具體實施方式並參照附圖,對本發明進一步詳細說明。應該理解,這些描述只是示例性的,而並非要限制本發明的範圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本發明的概念。

實施例:

本實施例以Android智能行動裝置,每臺設備都能夠對Wi-Fi進行設置,然後開始搜索可用的對等設備並在可用設備列表中顯示出來。用戶選擇想要連接的設備點擊連接按鈕後系統發出連接請求,收到連接請求的設備確認後即可建立起對等連接。

系統會使正在連接過程中的設備組成一個小組,系統由GroupOwner協商算法決定伺服器端和客戶端。

本發明的系統可分為四個層次,如圖1所示,包括用戶直接操作的界面層(UI層)、業務處理的邏輯層、數據交互的通信層和設備底層的驅動層。每層的功能具體如下:

a) 界面層(UI層):用戶通過界面層(UI層)直接和系統進行交互,通過進行相應的操作發送給請求給邏輯層,邏輯層做出相應的不同反應然後展示到界面上,完成用戶對軟體進行操作的過程。

b) 邏輯層:對用戶不同的操作請求進行處理和響應,通過不同的API函數庫進行相應的操作,實現系統和用戶的交互。

c) 通信層:實現設備間的信息數據交互,即搜索、連接、圖像數據和音頻數據等。

d) 驅動層:本層主要實現系統的Wi-Fi Direct的相關技術支持,為底層的應用程式提供API函數接口等。

本系統通過Socket套接字且利用Wi-Fi Direct技術進行設計,如圖2所示,本發明包括四個模塊,分別為實時視頻模塊、語音對講模塊、Socket通信模塊和Wi-Fi Direct模塊,每個模塊具體內容如下:

a) 實時視頻模塊:在成功匹配連接後的設備中,用戶可以對方傳送自己攝像頭當前的畫面,亦或可以接受對方的實時畫面。

b) 語音對講模塊:在成功匹配連接後的設備中,用戶可以進行語音對講,實現交流協作。

c) Socket通信模塊:通過Socket套接字為上述的系統功能實現提供網絡通信接口。

d) Wi-Fi Direct模塊:系統通過Wi-Fi Direct完成設備的搜索與匹配連接,在連接建立成功後,進行其他的功能實現。

Wi-Fi Direct模塊是系統的核心模塊,通過底層的硬體支持和API的函數接口為後面基於Socket的通信提供技術支持。Wi-Fi Direct模塊包括以下幾個模塊:

1) Wi-Fi Direct啟動模塊

在用戶打開程序後,如果設備沒有默認開啟Wi-Fi Direct功能,為了方便用戶的操作體驗,在需要開啟Wi-Fi Direct功能選項的時候,通過按鈕來直接跳轉到系統的Wi-Fi設置界面,用戶可以直接選擇打開或者關閉選項,然後返回程序界面。

2) Wi-Fi Direct搜索模塊

當用戶打開Wi-Fi Direct功能後,通過註冊一個廣播監聽器來監聽設備的當前的連接狀態、設備信息等並把附近的可用設備顯示在列表中,當設備的當前信息改變時,觸發相應的事件。

3) Wi-Fi Direct連接模塊

當用戶搜索到附近的可連接的對等設備後,用戶可以選擇想要連接的設備進行連接。此時,通過調用相應的API函數進行連接請求建立起對等連接小組,建立小組的過程中確立伺服器端和客戶端。設備連接的過程使用的是WPS(Wi-Fi Protected Setup)機制,在Android系統中有三種WPS:PIN(Personal Information Number)模式,通過4或8位數建立連接;PBC(Push Button Configuration)模式,通過點擊按鈕確認建立連接;WAP2加密模式,通過安全密碼建立連接。

Wi-Fi Direct的實現包括初始化Wi-Fi Direct、監聽Wi-Fi Direct狀態、搜索對等設備和連接對等設備。

初始化Wi-Fi Direct

a) 獲取系統權限

Android應用程式必須在AndroidManifest.xml文件中設置了應用程式的權限後才能夠使用Wi-Fi Direct的相關接口函數和其他設備硬體使用權限。

上述代碼就加入了APP訪問Wifi狀態的權限,同時還需要加入拍攝圖片視頻、完全訪問WLAN、讀取手機狀態和身份等權限。之後在安裝應用程式的時候,系統會顯示需要用到的權限並確認安裝。

b) 初始化

在應用程式的主Activity中的創建一個WifiP2pManager實例對象,通過相應的Wi-Fi Direct接口函數註冊當前的應用程式。應用程式通過WifiP2pManager系統服務進行Wi-Fi Direct的連接與管理,成功註冊後返回一個WifiP2pManager.Channel對象,這兩個參數最後都被傳給系統創建的廣播接收器。系統創建一個WifiP2pManager的動作監聽器,通過Broadcast Intent得到WifiP2pManager相關聯的動作返回值。主要代碼如下:

//表示Wi-Fi對等網絡狀態發生了改變

intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);

//表示可用的對等點的列表發生了改變

intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);

//表示Wi-Fi對等網絡的連接狀態發生了改變

intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);

//設備配置信息發生了改變

intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);

c) Wi-Fi Direct廣播接收器

在系統的主Activity中註冊Wi-Fi Direct廣播接收器同時要在onDestroy方法裡面主要這個廣播接收器。主要代碼如下:

//註冊wifi廣播接收者

receiver = new WiFiDirectBroadcastReceiver;

registerReceiver(receiver, intentFilter);

//取消wifi廣播接收者

protected void onDestroy {

super.onDestroy;

unregisterReceiver(receiver);

}。

監聽Wi-Fi Direct狀態

a) 創建廣播接收器,用來監聽相應的事件並進行響應。

首先註冊WifiP2pManager和其中Channel的實例化對象,然後創建一個廣播接收器。

b) 在廣播接收器對特定的意向進行函數操作從而實現監聽響應。具體流程如圖3所示。

搜索對等設備

當用戶按下搜索按鈕後,系統會廣播匹配意向,程序接收到該意向後,調用相應的方法就能獲得已經得到的設備清單。具體流程如圖4所示。

連接對等設備

用戶點擊可連接列表中的設備進行連接,需要調用Wi-Fi Direct中的connect方法,而設備的相關信息保存在WifiP2pConfig對象中。

成功連接後的設備通過Socket通信來進行設備之間的數據傳輸。Socket通信是伺服器和客戶端之間的通信,Socket通信模塊是基於TCP協議的套接字來進行實時畫面的傳輸和音頻數據的傳輸。分為伺服器端的Socket通信和客戶端的Socket通信兩個部分。

首先,服務端的Socket通信包括:

a) 創建ServerSocket實例對象用來監聽設定好的埠。

b) 創建一個線程用來監聽客戶端的連接請求,等待客戶端主動連接。

c) 成功建立連接後,通過Input Stream讀取數據,通過Output Stream寫入數據。

其次,客戶端的Socket通信包括:

a) 創建客戶端Socket的實例對象,設定好網絡地址和埠號來指定對應的服務端的ServerSocket。

b) 主動連接到服務端的Socket。

c) 成功建立連接後,通過Input Stream讀取數據,通過Output Stream寫入數據。

實時視頻模塊用於獲取當前攝像頭的實時畫面並進行傳輸。實時視頻模塊是建立在伺服器和客戶端的連接基礎上的,主要分為三個部分:圖像的採集,數據的傳輸和圖像的顯示。以下分別對三個部分進行介紹。

a) 圖像採集

通過Android的onPreviewFrame重載函數來獲取攝像頭的當前圖像,參數byte[]是這個函數中的一個重要參數,內容是攝像頭的實時圖像數據,然後系統使用YuvImage方法可以將該數據轉換為圖片文件,之後系統就可以對該圖片進行壓縮和裁剪,將圖片進行壓縮轉換後轉換成文件線程類中需要的ByteArrayOutputStream數據,然後啟動發送線程將圖像數據發送給對方。

b) 數據傳輸

在用戶成功建立Socket連接後,單擊開始傳輸按鈕觸發點擊時間後,啟動數據傳輸的線程。發送方將數據通過OutputStream傳送給接收方,接收方則通過發送方的Socket獲取對應的InputStream,讀取其中的字節流,然後通過相應的數據還原展現在圖像展示組件中。

c) 圖像顯示

接收方在收到發送方傳來的數據後,對數據進行解碼還原,通過surfaceview組件將收到的圖像顯示在屏幕上,主要流程如圖5所示。

語音對講模塊主要負責實時語音通信的功能。語音對講模塊同樣也是建立在伺服器和客戶端的連接基礎上的,主要分為三個部分:音頻數據的採集,數據的傳輸和音頻的播放。以下分別對三個部分進行介紹。

a) 音頻的採集

在錄音開始前需要創建一個AudioRecord的實例對象來進行相關的錄音設置。在用戶按下錄音按鈕觸發點擊事件後開始錄音線程,系統通過start Recording開始錄音並且把採集到的音頻存入到buffer緩衝區中,然後通過傳輸線程將採集到音頻信息發送給對方的設備。用戶鬆開按鈕後觸發相應的事件結束錄音並啟動發送線程。

b) 數據傳輸

與視頻畫面傳輸類似,通過OutputStream和InputStream進行數據流的傳輸接收。

c) 音頻的播放

系統通過Android的AudioTrack類來進行音頻的播放。通過創建一個AudioTrack實例對象並對播放時的參數進行相應的設置。當子線程獲取到接收到的數據後,通過相應的API函數方法將獲取到的內容以音頻的形式播放,從而讓用戶聽到對方的語音信息。

應當理解的是,本發明的上述具體實施方式僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀