本發明涉及通信領域,特別涉及一種數據傳輸方法、裝置及系統。
背景技術:
隨著科學技術的發展,用戶之間的信息分享越來越普遍,信息分享可以通過用戶使用的終端之間的數據傳輸的方式實現。
相關技術中,終端之間的數據傳輸一般需要依賴網絡,即參與數據傳輸的終端均要與網絡連接。在無網絡時,可以通過掃描二維碼的方式,實現數據的傳輸。具體的,一個終端將數據編碼得到二維碼,另一個終端掃描該二維碼后,對二維碼解碼得到相應的數據,一個二維碼的最大數據容量通常是固定的,例如快速反應(英文:Quick Response;簡稱:QR)碼的最大數據容量為1167個數值型字符,也即是1167個字節。
但是,一個二維碼能夠傳輸的數據量較小,較大的數據無法通過一個二維碼傳輸,因此,二維碼傳輸數據的靈活性較低。
技術實現要素:
為了解決相關技術中二維碼傳輸數據的靈活性較低的問題,本發明實施例提供了一種數據傳輸方法、裝置及系統。所述技術方案如下:
第一方面,提供了一種數據傳輸方法,應用于第一終端,所述方法包括:
將待傳輸數據拆分成n個子數據,所述n大于或等于2,每個所述子數據的數據量不大于預設的二維碼容量閾值;
生成m個二維碼,所述m個二維碼包括指示二維碼和n個二維碼,所述n個二維碼中每個二維碼由一個所述子數據編碼得到,所述指示二維碼由所述待傳輸數據的相關信息編碼得到;
依次顯示所述m個二維碼,以便第二終端依次掃描所述m個二維碼。
可選地,所述依次顯示所述m個二維碼,包括:
顯示所述m個二維碼中首個二維碼;
在每次接收到所述第二終端發送的提示信息后,顯示所述m個二維碼中當前顯示的二維碼的下一個二維碼,直至所述m個二維碼全部顯示完畢。
可選地,所述提示信息為音頻提示信息。
可選地,所述待傳輸數據為音頻數據。
可選地,所述生成m個二維碼,包括:
將所述待傳輸數據作為鍵,采用預設哈希算法所確定的值作為校驗哈希值;
將所述校驗哈希值編碼得到所述指示二維碼;
將所述n個子數據分別編碼得到所述n個二維碼。
可選地,所述指示二維碼共1個,且為所述m個二維碼中的首個二維碼。
可選地,所述待傳輸數據的相關信息包括所述待傳輸數據的拆分規則和所述待傳輸數據的屬性值中的至少一種。
第二方面,提供了一種數據傳輸方法,應用于第二終端,所述方法包括:
在第一終端依次顯示m個二維碼的過程中,依次掃描所述m個二維碼,所述m個二維碼包括指示二維碼和n個二維碼;
獲取所述m個二維碼中的指示二維碼和n個二維碼,所述指示二維碼用于攜帶所述待傳輸數據的相關信息;
對所述指示二維碼進行解碼得到所述待傳輸數據的相關信息;
分別對所述n個二維碼進行解碼,得到n個子數據,其中,所述n個二維碼中每個二維碼對應的一個所述子數據;
根據所述待傳輸數據的相關信息,將所述n個子數據拼接得到目標數據。
可選地,所述在第一終端依次顯示m個二維碼的過程中,依次掃描所述m個二維碼,包括:
開始進行所述第一終端顯示的二維碼的掃描后,每完成一個二維碼的掃描,向所述第一終端發送一個提示信息。
可選地,所述提示信息為音頻提示信息。
可選地,所述待傳輸數據為音頻數據。
可選地,所述待傳輸數據的相關信息包括:校驗哈希值;
在所述根據所述待傳輸數據的相關信息,將所述n個子數據拼接得到目標數據之后,所述方法還包括:
將所述目標數據作為鍵,采用所述預設哈希算法確定目標哈希值;
比較所述目標哈希值與所述校驗哈希值是否相同;
當所述目標哈希值與所述校驗哈希值相同時,確定所述目標數據為正確數據;
當所述目標哈希值與所述校驗哈希值不相同時,確定所述目標數據為錯誤數據。
可選地,所述獲取所述m個二維碼中的指示二維碼和n個二維碼,包括:
將所述m個二維碼中的首個二維碼作為所述指示二維碼;
將所述m個二維碼中除所述首個二維碼之外的二維碼作為所述n個二維碼。
可選地,所述待傳輸數據的相關信息包括所述待傳輸數據的拆分規則,所述根據所述待傳輸數據的相關信息,將所述n個子數據拼接得到目標數據,包括:
根據所述拆分規則,將所述n個子數據拼接得到目標數據。
第三方面,提供了一種數據傳輸裝置,應用于第一終端,所述裝置包括:
拆分模塊,用于將待傳輸數據拆分成n個子數據,所述n大于或等于2,每個所述子數據的數據量不大于預設的二維碼容量閾值;
生成模塊,用于生成m個二維碼,所述m個二維碼包括指示二維碼和n個二維碼,所述n個二維碼中每個二維碼由一個所述子數據編碼得到,所述指示二維碼由所述待傳輸數據的相關信息編碼得到;
顯示模塊,用于依次顯示所述m個二維碼,以便第二終端依次掃描所述m個二維碼。
可選地,所述顯示模塊,具體用于:
顯示所述m個二維碼中首個二維碼;
在每次接收到所述第二終端發送的提示信息后,顯示所述m個二維碼中當前顯示的二維碼的下一個二維碼,直至所述m個二維碼全部顯示完畢。
可選地,所述提示信息為音頻提示信息。
可選地,所述待傳輸數據為音頻數據。
可選地,所述生成模塊,具體用于:
將所述待傳輸數據作為鍵,采用預設哈希算法所確定的值作為校驗哈希值;
將所述校驗哈希值編碼得到所述指示二維碼;
將所述n個子數據分別編碼得到所述n個二維碼。
可選地,所述指示二維碼共1個,且為所述m個二維碼中的首個二維碼。
可選地,所述待傳輸數據的相關信息包括所述待傳輸數據的拆分規則和所述待傳輸數據的屬性值中的至少一種。
第四方面,提供了一種數據傳輸裝置,應用于第二終端,所述裝置包括:
掃描模塊,用于在第一終端依次顯示m個二維碼的過程中,依次掃描所述m個二維碼,所述m個二維碼包括指示二維碼和n個二維碼;
獲取模塊,用于獲取所述m個二維碼中的指示二維碼和n個二維碼,所述指示二維碼用于攜帶所述待傳輸數據的相關信息;
解碼模塊,用于對所述指示二維碼進行解碼得到所述待傳輸數據的相關信息;
所述解碼模塊,還用于分別對所述n個二維碼進行解碼,得到n個子數據,其中,所述n個二維碼中每個二維碼對應一個所述子數據;
拼接模塊,用于根據所述待傳輸數據的相關信息,將所述n個子數據拼接得到目標數據。
可選地,所述掃描模塊,具體用于:
開始進行所述第一終端顯示的二維碼的掃描后,每完成一個二維碼的掃描,向所述第一終端發送一個提示信息。
可選地,所述提示信息為音頻提示信息。
可選地,所述待傳輸數據為音頻數據。
可選地,所述待傳輸數據的相關信息包括:校驗哈希值;
所述裝置還包括:
第一確定模塊,用于將所述目標數據作為鍵,采用所述預設哈希算法確定目標哈希值;
比較模塊,用于比較所述目標哈希值與所述校驗哈希值是否相同;
第二確定模塊,用于當所述目標哈希值與所述校驗哈希值相同時,確定所述目標數據為正確數據;
第三確定模塊,用于當所述目標哈希值與所述校驗哈希值不相同時,確定所述目標數據為錯誤數據。
可選地,所述獲取模塊具體用于:
將所述m個二維碼中的首個二維碼作為所述指示二維碼;
將所述m個二維碼中除所述首個二維碼之外的二維碼作為所述n個二維碼。
可選地,所述待傳輸數據的相關信息包括所述待傳輸數據的拆分規則,所述拼接模塊,具體用于:
根據所述拆分規則,將所述n個子數據拼接得到目標數據。
第五方面,提供了一種數據傳輸系統,所述數據傳輸系統包括:第一終端和第二終端;
所述第一終端包括第三方面任一所述的數據傳輸裝置;
所述第二終端包括第四方面任一所述的數據傳輸裝置。
本發明實施例提供的技術方案帶來的有益效果是:
本發明實施例提供的數據傳輸方法、裝置及系統,第一終端可以將待傳輸數據拆分成n個子數據,生成m個二維碼,再依次顯示m個二維碼,第二終端在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,并對m個二維碼進行解碼,再對解碼后的數據進行拼接以得到目標數據,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例中提供的數據傳輸方法所涉及的實施環境的示意圖;
圖2是本發明實施例提供的一種數據傳輸方法的流程圖;
圖3是本發明實施例提供的另一種數據傳輸方法的流程圖;
圖4是本發明實施例提供的又一種數據傳輸方法的流程圖;
圖5是本發明實施例提供的一種依次顯示m個二維碼的方法流程圖;
圖6是本發明實施例提供的一種數據傳輸裝置的結構示意圖;
圖7是本發明實施例提供的另一種數據傳輸裝置的結構示意圖;
圖8是本發明實施例提供的又一種數據傳輸裝置的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
請參見圖1,其示出了本發明實施例中提供的數據傳輸方法所涉及的實施環境的示意圖。該實施環境可以包括:第一終端110和第二終端120。
第一終端110可以為具有顯示屏的智能手機、電腦、多媒體播放器、電子閱讀器、可穿戴式設備等多種終端。第二終端120可以為具有攝像頭1201的智能手機、電腦、多媒體播放器、電子閱讀器、可穿戴式設備等多種終端,其中,攝像頭1201可以用于獲取圖像(例如:第一終端110的顯示界面1102中的二維碼1101),第二終端120可以通過多種方式對獲取的圖像進行識別。
本發明實施例提供了一種數據傳輸方法,應用于第一終端,如圖2所示,該方法可以包括:
步驟101、將待傳輸數據拆分成n個子數據,n大于或等于2,每個子數據的數據量不大于預設的二維碼容量閾值。
步驟102、生成m個二維碼。
m個二維碼包括指示二維碼和n個二維碼,n個二維碼中每個二維碼由一個子數據編碼得到,指示二維碼由待傳輸數據的相關信息編碼得到。
步驟103、依次顯示m個二維碼。
第一終端依次顯示m個二維碼可以便于第二終端依次掃描m個二維碼。
需要說明的是,二維碼可以是QR碼、數據矩陣(英文:Data Matrix)碼或授權碼(英文:vericode)等,本發明實施例對其不做具體限定。
綜上所述,本發明實施例提供的數據傳輸方法,第一終端可以將待傳輸數據拆分成n個子數據,生成m個二維碼,再依次顯示m個二維碼,以便第二終端可以通過依次掃描該m個二維碼的方式獲取到該待傳輸數據。因此,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
本發明實施例提供了一種數據傳輸方法,應用于第二終端,如圖3所示,該方法可以包括:
步驟201、在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼。
其中,m個二維碼包括指示二維碼和n個二維碼。
步驟202、獲取m個二維碼中的指示二維碼和n個二維碼。
其中,指示二維碼用于攜帶待傳輸數據的相關信息。
步驟203、對指示二維碼進行解碼得到待傳輸數據的相關信息。
步驟204、分別對n個二維碼進行解碼,得到n個子數據。
其中,n個二維碼中每個二維碼對應的一個子數據。
步驟205、根據待傳輸數據的相關信息,將n個子數據拼接得到目標數據。
綜上所述,本發明實施例提供的數據傳輸方法,第二終端在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,并對m個二維碼進行解碼,再對解碼后的數據進行拼接以得到目標數據,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
圖4為本發明實施例提供的一種數據傳輸方法的流程圖,該方法可以應用于如圖1所示的實施環境中。如圖4所示,該方法可以包括:
步驟301、第一終端將待傳輸數據拆分成n個子數據。
當第一終端需要向第二終端傳輸較大數據量的數據時,可以根據預設的拆分規則,將待傳輸數據拆分成n個子數據,該n大于或等于2。之后,該第一終端可以將每個子數據以二維碼的形式傳輸至第二終端。為了保證二維碼的正常編解碼,需要保證每個子數據的數據量不大于預設的二維碼容量閾值。二維碼容量閾值是指每個二維碼能夠攜帶的最大數據容量。該預設的二維碼容量閾值可以為256字節、512字節、1024字節或者2048字節等。
其中,待傳輸數據的數據類型可以為音頻數據、圖片,或者其他類型的數據;該預設的拆分規則可以為第一終端與第二終端預先約定的拆分規則,或者,還可以為第一終端中自定義的拆分規則。具體的,該拆分規則可以為等分拆分或按照固定大小拆分。
示例地,假設第一終端中的待傳輸數據為某音頻數據,其大小為50千字節,預設的二維碼容量閾值為1024字節,拆分規則為等分拆分,該等分拆分的具體方式為:按照數據存儲順序將待傳輸數據拆分為多個數據容量相等的子數據,則第一終端按照該等分拆分的規則可以將待傳輸數據根據其數據存儲順序,依次拆分為50(50千字節/1024字節=50)個子數據,即n=50。
步驟302、第一終端將待傳輸數據的相關信息編碼得到指示二維碼。
待傳輸數據的相關信息可以包括待傳輸數據的拆分規則、待傳輸數據的屬性值、子數據的總數和待傳輸數據的校驗哈希值等信息。為了保證第二終端可以正確接收到該待傳輸數據,該第一終端可以將待傳輸數據的相關信息進行編碼得到指示二維碼。由于該待傳輸數據的相關信息的數據量較小,因此一般通過一個指示二維碼即可攜帶該待傳輸數據的相關信息。具體的,第一終端對待傳輸數據的相關信息進行編碼時使用的編碼方法,可以為UTF-8(英文:8-bit Unicode Transformation Format)編碼方法,或者,也可以為其他編碼方法,例如,結構化附加模式(英文:Structured Append mode)編碼方法等,本發明實施例對其不做具體限定。
待傳輸數據的相關信息中,拆分規則可用于向第二終端指示其接收的多個二維碼攜帶的子數據的組成方式,第二終端可以按照該子數據的組成方式將接收到的多個二維碼攜帶的子數據進行拼接,以得到目標數據。待傳輸數據的屬性值用于向第二終端指示待傳輸數據的屬性值,例如:指示待傳輸數據的數據量和待傳輸數據的數據類型等屬性值。子數據的總數用于指示第二終端需要接收的二維碼的總數。待傳輸數據的校驗哈希值能夠唯一指示該待傳輸數據,第二終端可以根據該校驗哈希值對接收到的數據進行驗證。
可選地,第一終端可以將待傳輸數據作為鍵,采用預設哈希算法所確定的值作為該待傳輸數據的校驗哈希值,也即是,將待傳輸數據作為預設哈希算法的輸入,預設哈希算法將該輸入映射為一個哈希值,再將該哈希值作為校驗哈希值。其中,預設哈希算法可以為消息摘要算法第五版(英文:Message Digest Algorithm;簡稱:MD5算法)、安全散列算法第一版(英文:Secure Hash Algorithm;簡稱:SHA-1算法)或者其他哈希算法。示例地,將某待傳輸數據作為鍵,采用預設哈希算法所確定的值為E8C636D0C0486378BF61E6A3000D0FB7,將該值作為校驗哈希值,即校驗哈希值為E8C636D0C0486378BF61E6A3000D0FB7。
示例地,假設某待傳輸數據的相關信息包括:待傳輸數據為音頻數據,大小為50千字節,對待傳輸數據的進行拆分時的拆分規則為等分拆分,第一終端將待傳輸數據拆分為了50個子數據,待傳輸數據的校驗哈希值為E8C636D0C0486378BF61E6A3000D0FB7,則第一終端可以對該待傳輸數據的相關信息進行編碼,得到攜帶以上相關信息的指示二維碼A。
需要說明的是,當待傳輸數據的拆分規則為第一終端和第二終端預先約定的拆分規則時,該相關信息中可以不包括待傳輸數據的拆分規則。
步驟303、第一終端將n個子數據分別編碼得到n個二維碼。
第一終端可以對該n個子數據中的每個子數據進行編碼得到一個二維碼,一共可以得到n個二維碼。其中,第一終端對每個子數據進行編碼的方法,可以參考第一終端對待傳輸數據的相關信息進行編碼的編碼方法,此處不再贅述。
示例地,某待傳輸數據被拆分成了50個子數據,第一終端將該50個子數據分別編碼可以得到50個二維碼,即n=50。
步驟304、第一終端依次顯示m個二維碼。
第一終端根據上述步驟302可以生成一個指示二維碼,根據上述步驟303可以生成n個二維碼,則該第一終端根據該待傳輸數據一共可以生成m個二維碼,其中m=n+1。該m個二維碼中的首個二維碼可以為指示二維碼,剩余的n個二維碼為按照拆分后的n個子數據的存儲順序依次排列的多個二維碼。該第一終端在顯示該m個二維碼的過程中,可以按照該m個二維碼的順序,依次顯示每個二維碼。這樣,指示二維碼在數據傳輸過程中可成為第一個被傳輸的二維碼,使得第二終端在數據傳輸的開始時刻即可獲得待傳輸數據的相關信息,并根據該相關信息在傳輸過程中對已傳輸完成的二維碼攜帶的數據進行拼接,無需在所有二維碼全部傳輸完成后才進行數據拼接,可以有效提高數據的傳輸效率。
在本發明實施例一種可選的實現方式中,如圖5所示,第一終端依次顯示m個二維碼的過程具體可以包括:
步驟304a、第一終端顯示m個二維碼中首個二維碼。
示例地,第一終端顯示m個二維碼中首個二維碼的界面示意圖可以參考圖1中第一終端110的顯示界面1102,指示二維碼1101可以顯示在第一終端的顯示界面1102的中間位置。
實際應用中,二維碼在第一終端界面中顯示的位置和顯示的大小均可以根據實際情況或者用戶喜好進行調整,本發明實施例對其不做限定。
步驟304b、第一終端在每次接收到第二終端發送的提示信息后,顯示m個二維碼中當前顯示的二維碼的下一個二維碼,直至m個二維碼全部顯示完畢。
在本發明實施例中,第二終端可以在每完成一個二維碼的掃描時,向第一終端發送一個提示信息。因此,第一終端在顯示二維碼的過程中,同時也在檢測是否接收到提示信息,該提示信息用于指示第二終端已完成對當前顯示的二維碼的掃描。當第一終端每次接收到第二終端發送的提示信息后,可以繼續顯示m個二維碼中當前顯示的二維碼的下一個二維碼,也即是將第一終端界面上顯示的二維碼切換為當前顯示的二維碼的下一個二維碼,以便于第二終端繼續掃描。
示例地,假設待傳輸數據共對應51個二維碼,即m=51,第一終端當前顯示的二維碼為第15個二維碼,則在接收到第二終端發送的提示信息后,第一終端顯示第15個二維碼的下一個二維碼,也即是顯示第16個二維碼,以便于第二終端繼續掃描。
需要說明的是,在依次顯示m個二維碼的過程中,第一終端可以通過計數的方式檢測是否完成了所有二維碼的顯示,也即是檢測是否完成待傳輸數據的傳輸。示例地,該過程具體可以包括:
在數據傳輸的開始時刻,設定k=0,執行以下步驟:
步驟A、第一終端在每次接收到第二終端發送的提示信息后,更新k,使更新后的k=k+1。
步驟B、第一終端判斷k是否等于二維碼總數m,k等于m時,執行步驟C,k不等于m時,執行步驟A。
步驟C、確定完成數據傳輸,第一終端在顯示界面中顯示傳輸結束提示信息。
還需要說明的是,上述步驟301到步驟304的操作,可以為第一終端根據預設程序自動實現的操作,也可以為第一終端在接收到用戶的觸發指令后才執行的操作,示例地,步驟304b的實現可以為在用戶接收到提示信息后,點擊界面中的切換按鈕,以觸發顯示m個二維碼中當前顯示的二維碼的下一個二維碼的切換操作,第一終端接收到該切換操作后,顯示當前顯示的二維碼的下一個二維碼。
步驟305、第二終端在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼。
其中,m個二維碼包括指示二維碼和n個二維碼。第二終端的掃描功能開啟后,第二終端即可開始對第一終端依次顯示的m個二維碼中的每個二維碼進行掃描。
步驟306、第二終端在每完成一個二維碼的掃描時,向第一終端發送一個提示信息。
該提示信息可以為音頻提示信息,或者,也可以為紅外或閃光等,或者,還可以為第二終端通過藍牙或者無線保真(英文:WIreless-Fidel的;簡稱:WIFI)發送的數據信息。可選地,當該提示信息為音頻提示信息或閃光等形式的信息時,該提示信息也可以用于提示用戶,以提示用戶第二終端已完成當前顯示的二維碼的掃描。
根據該提示信息類型的不同,上述步驟步驟304b中第一終端識別該提示信息的方法也有所不同。具體的,當該提示信息為音頻提示信息時,第一終端可以檢測接收到的信息的振幅或頻率是否在預設范圍內,或者,檢測接收到的信息是否包括預設詞語,再根據檢測結果判斷接收到的信息是否為第二終端發送的用于提示掃描完成的提示信息。當接收到的信息的振幅或頻率在預設范圍內,或者,接收到的信息包括預設詞語時,可以確定接收到的信息為第二終端發送的用于提示掃描完成的提示信息。
示例地,在第二終端在完成一個二維碼的掃描時,其向第一終端發送了一個頻率為500赫茲的音頻提示信息,第一終端在接收到該信息之后,可以通過識別該信息的頻率是否在預設范圍內,以確定該信息是否為第二終端發送的用于提示掃描完成的提示信息,假設預設范圍為300赫茲~1000赫茲的,可知500赫茲在300赫茲~1000赫茲的范圍內,則第一終端可以確定該信息為第二終端發送的用于提示掃描完成的提示信息。
步驟307、第二終端獲取m個二維碼中的指示二維碼和n個二維碼。
第二終端在掃描該m個二維碼的過程中,可以將m個二維碼中的首個二維碼作為指示二維碼,并將m個二維碼中除首個二維碼之外的二維碼作為n個二維碼。
其中,將m個二維碼中的首個二維碼作為指示二維碼可以為第一終端與第二終端預先約定的。根據該預先約定,第一終端在顯示時,會將指示二維碼作為其顯示的首個二維碼。在第二終端掃描二維碼之后,會以默認的方式將m個二維碼中的首個二維碼作為指示二維碼,并將除首個二維碼之外的二維碼作為n個二維碼,該n個二維碼即為待傳輸數據所對應的二維碼。
示例地,第二終端通過掃描獲取了51個二維碼,則根據預先約定,第二終端可以將該51個二維碼中的首個二維碼作為指示二維碼,將除首個二維碼之外的二維碼作為50個二維碼,也即是,將51個二維碼中的第1個二維碼作為指示二維碼,將51個二維碼中的第2至第51個二維碼作為50個二維碼,該50個二維碼待為傳輸數據對應的二維碼。
步驟308、第二終端對指示二維碼進行解碼得到待傳輸數據的相關信息。
可選地,第二終端可以采用預設的解碼方法對獲得的指示二維碼進行解碼,解碼后的內容即為待傳輸數據的相關信息,該內容可以為待傳輸數據的相關信息,該預設的解碼方法為與第一終端將數據編碼成二維碼的編碼方法對應的解碼方法,以保證第二終端能夠通過該解碼方法成功地對從第一終端處掃描得到的二維碼進行解碼。
示例地,第二終端獲得的指示二維碼為指示二維碼A,對該指示二維碼進行解碼后得到的內容可以為:待傳輸數據為音頻數據,該音頻數據的大小為50千字節,對待傳輸數據的進行拆分時的拆分規則為等分拆分,第一終端將待傳輸數據拆分為了50個子數據,該待傳輸數據的校驗哈希值為E8C636D0C0486378BF61E6A3000D0FB7。
需要說明的是,第二終端中可以預存有對二維碼的解碼方法,該解碼方法與第一終端將數據編碼成二維碼的編碼方法對應,以保證第二終端能夠通過該解碼方法成功地對從第一終端處掃描得到的二維碼進行解碼,示例地,當第一終端使用的編碼方法為UTF-8編碼方法時,第二終端中可以預存有對應UTF-8編碼方法的解碼方法。其中,對二維碼解碼的具體過程可以參考現有技術,此處不再贅述。
步驟309、第二終端分別對n個二維碼進行解碼,得到n個子數據。
其中,n個二維碼中每個二維碼對應的一個子數據。
示例的,第二終端可以采用預設的解碼方法分別對獲得的50個二維碼進行解碼,50個二維碼中的每個二維碼對應一個子數據,則通過解碼可以得到50個子數據。
步驟310、第二終端根據待傳輸數據的相關信息,將n個子數據拼接得到目標數據。
可選地,待傳輸數據的相關信息可以包括待傳輸數據的拆分規則和待傳輸數據的屬性值中的至少一種。當待傳輸數據的相關信息包括待傳輸數據的拆分規則時,第二終端可以根據該拆分規則,確定與該拆分規則對應的拼接規則,并根據該拼接規則,將n個子數據拼接得到目標數據。
示例地,待傳輸數據的相關信息為待傳輸數據的拆分規則,該拆分規則為按照數據存儲順序將待傳輸數據拆分為多個數據容量相等的子數據,且第二終端通過解碼得到了50個子數據,即n=50。則第一終端可以確定與該拆分規則對應的拼接規則為:按照子數據的接收順序將該50個子數據拼接得到目標數據。因此該第二終端可以按照50個子數據的接收順序,依次將該50個子數據進行拼接得到一個數據,該數據即為目標數據。
步驟311、第二終端將目標數據作為鍵,采用預設哈希算法確定目標哈希值。
第二終端根據目標數據確定目標哈希值的過程可以相應參考步驟302,此處不再贅述。
步驟312、第二終端比較目標哈希值與校驗哈希值是否相同。
哈希算法可以將任意長度的數據映射為較短的具有固定長度的哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式,也即是,哈希值可以唯一地表示待傳輸數據,當待傳輸數據發生改變時,其對應的哈希值也會發生變化,因此,可以通過哈希值對待傳輸數據進行完整性校驗,以檢測待傳輸數據與目標數據是否為同一數據,也即是校驗目標數據是否正確。當目標數據為正確的數據時,可以正常使用目標數據,當目標數據為錯誤數據時,不能夠正常使用目標數據,該錯誤的目標數據可以被丟棄。
步驟313、當目標哈希值與校驗哈希值相同時,第二終端確定目標數據為正確數據。
目標哈希值與校驗哈希值相同,表明第二終端獲得的目標數據與待傳輸數據為同一數據,即目標數據為正確數據。示例地,假設第二終端根據目標數據確定的目標哈希值為E8C636D0C0486378BF61E6A3000D0FB7,第二終端對指示二維碼進行解碼得到的校驗哈希值為E8C636D0C0486378BF61E6A3000D0FB7,將目標哈希值與校驗哈希值進行比較,可知目標哈希值與校驗哈希值相同,則第二終端確定目標數據為正確數據,該目標數據可以正常使用。
需要說明的是,當第二終端確定目標數據為正確數據時,第二終端可以發出提示,以提示目標數據為正確數據,第一終端在接收該提示信息后,可以在顯示界面中顯示傳輸完成。示例地,該提示信息可以為音頻等提示信息。
步驟314、當目標哈希值與校驗哈希值不相同時,第二終端確定目標數據為錯誤數據。
目標哈希值與校驗哈希值不相同,表明第二終端獲得的目標數據與待傳輸數據不為同一數據,即目標數據為錯誤數據。示例地,假設第二終端根據目標數據確定的目標哈希值為E8C636D0C0486378BF61E6A3000D0FB7,第二終端對指示二維碼進行解碼得到的校驗哈希值為E8C636D0C0486378BF61E6A3000D0007,將目標哈希值與校驗哈希值進行比較,可知目標哈希值與校驗哈希值不相同,則第二終端確定目標數據為錯誤數據,該目標數據不能夠正常使用。
可選地,當第二終端確定目標數據為錯誤數據時,第二終端可以發出提示,以提示目標數據為錯誤數據。該提示信息可以用于提示第一終端重新進行數據傳輸,或者提示用戶對該目標數據進行處理。示例地,該提示信息可以為音頻等提示信息。
需要說明的是,本發明實施例提供的數據傳輸方法步驟的先后順序可以進行適當調整,步驟也可以根據情況進行相應增減,例如步驟302和步驟303的順序可進行調整。任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化的方法,都應涵蓋在本發明的保護范圍之內,因此不再贅述。
綜上所述,本發明實施例提供的數據傳輸方法,通過第一終端將待傳輸數據拆分成n個子數據,生成m個二維碼,再依次顯示m個二維碼,第二終端在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,并對m個二維碼進行解碼,再對解碼后的數據進行拼接以得到目標數據,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
本發明實施例提供了一種數據傳輸裝置800,應用于第一終端,如圖6所示,數據傳輸裝置800可以包括:
拆分模塊801,用于將待傳輸數據拆分成n個子數據,n大于或等于2,每個子數據的數據量不大于預設的二維碼容量閾值。
生成模塊802,用于生成m個二維碼,m個二維碼包括指示二維碼和n個二維碼,n個二維碼中每個二維碼由一個子數據編碼得到,指示二維碼由待傳輸數據的相關信息編碼得到。
顯示模塊803,用于依次顯示m個二維碼,以便第二終端依次掃描m個二維碼。
綜上所述,本發明實施例提供的數據傳輸裝置,通過拆分模塊將待傳輸數據拆分成n個子數據,生成模塊生成m個二維碼,顯示模塊依次顯示m個二維碼,以便第二終端可以通過依次掃描該m個二維碼的方式獲取到該待傳輸數據。因此,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
可選地,顯示模塊803,具體用于:
顯示m個二維碼中首個二維碼。
在每次接收到第二終端發送的提示信息后,顯示m個二維碼中當前顯示的二維碼的下一個二維碼,直至所述m個二維碼全部顯示完畢。
可選地,提示信息為音頻提示信息。
可選地,待傳輸數據為音頻數據。
可選地,生成模塊802,具體用于:
將待傳輸數據作為鍵,采用預設哈希算法所確定的值作為校驗哈希值。
將校驗哈希值編碼得到指示二維碼。
將n個子數據分別編碼得到n個二維碼。
可選地,指示二維碼共1個,且為m個二維碼中的首個二維碼。
可選地,待傳輸數據的相關信息包括待傳輸數據的拆分規則和待傳輸數據的屬性值中的至少一種。
綜上所述,本發明實施例提供的數據傳輸裝置,通過拆分模塊將待傳輸數據拆分成n個子數據,生成模塊生成m個二維碼,顯示模塊依次顯示m個二維碼,以便第二終端可以通過依次掃描該m個二維碼的方式獲取到該待傳輸數據。因此,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
本發明實施例提供了一種數據傳輸裝置900,應用于第二終端,如圖7所示,數據傳輸裝置900可以包括:
掃描模塊901,用于在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,m個二維碼包括指示二維碼和n個二維碼。
獲取模塊902,用于獲取m個二維碼中的指示二維碼和n個二維碼,指示二維碼用于攜帶待傳輸數據的相關信息。
解碼模塊903,用于對指示二維碼進行解碼得到待傳輸數據的相關信息,還用于分別對n個二維碼進行解碼,得到n個子數據,其中,n個二維碼中每個二維碼對應一個子數據。
拼接模塊904,用于根據待傳輸數據的相關信息,將n個子數據拼接得到目標數據。
綜上所述,本發明實施例提供的數據傳輸裝置,通過掃描模塊在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,解碼模塊對m個二維碼進行解碼,拼接模塊對解碼后的數據進行拼接以得到目標數據,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
可選地,掃描模塊901,具體用于:開始進行第一終端顯示的二維碼的掃描后,每完成一個二維碼的掃描,向第一終端發送一個提示信息。
可選地,提示信息為音頻提示信息。
可選地,待傳輸數據為音頻數據。
可選地,待傳輸數據的相關信息包括:校驗哈希值。
可選地,如圖8所示,數據傳輸裝置900還可以包括:
第一確定模塊905,用于將目標數據作為鍵,采用預設哈希算法確定目標哈希值。
比較模塊906,用于比較目標哈希值與校驗哈希值是否相同。
第二確定模塊907,用于當目標哈希值與校驗哈希值相同時,確定目標數據為正確數據。
第三確定模塊908,用于當目標哈希值與校驗哈希值不相同時,確定目標數據為錯誤數據。
可選地,獲取模塊902具體用于:
將m個二維碼中的首個二維碼作為指示二維碼。
將m個二維碼中除首個二維碼之外的二維碼作為n個二維碼。
可選地,待傳輸數據的相關信息包括待傳輸數據的拆分規則。
可選地,拼接模塊904具體用于:根據拆分規則,將n個子數據拼接得到目標數據。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
綜上所述,本發明實施例提供的數據傳輸裝置,通過掃描模塊在第一終端依次顯示m個二維碼的過程中,依次掃描m個二維碼,解碼模塊對m個二維碼進行解碼,拼接模塊對解碼后的數據進行拼接以得到目標數據,可以通過二維碼實現較大數據量的數據傳輸,有效地提高了二維碼傳輸數據的靈活性。
本發明實施例還提供了一種數據傳輸系統,參考圖1,該數據傳輸系統包括:第一終端和第二終端,該第一終端可以包括圖6所示的數據傳輸裝置800;該第二終端可以包括圖7或圖8所示的數據傳輸裝置900。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。