国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種與藍(lán)牙設(shè)備的配對(duì)方法及裝置與流程

      文檔序號(hào):11524975閱讀:428來源:國(guó)知局
      一種與藍(lán)牙設(shè)備的配對(duì)方法及裝置與流程

      本發(fā)明涉及通信領(lǐng)域,尤其涉及一種與藍(lán)牙設(shè)備的配對(duì)方法及裝置。



      背景技術(shù):

      在移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信的過程中,首先需要完成兩個(gè)設(shè)備的配對(duì)過程,現(xiàn)有技術(shù)中的藍(lán)牙配對(duì)方法中,只要移動(dòng)設(shè)備搜索到藍(lán)牙設(shè)備就可以直接進(jìn)行配對(duì),存在重放攻擊的危險(xiǎn),為此提出了用戶參與配對(duì)過程的方法,即在移動(dòng)設(shè)備與藍(lán)牙設(shè)備配對(duì)的過程中需要用戶參與按鍵確認(rèn)后完成配對(duì)過程,兩個(gè)設(shè)備方才可以通信,該方式有效的避免了重放攻擊的危險(xiǎn);然而,該方式也并不完善,其延長(zhǎng)了移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信的時(shí)間,降低了用戶體驗(yàn)。



      技術(shù)實(shí)現(xiàn)要素:

      為解決現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種與藍(lán)牙設(shè)備的配對(duì)方法及裝置。

      一方面,本發(fā)明提供了一種與藍(lán)牙設(shè)備的配對(duì)方法,包括:

      步驟s1:掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,從中選擇目標(biāo)藍(lán)牙設(shè)備,連接所述目標(biāo)藍(lán)牙設(shè)備;

      步驟s2:獲取所述移動(dòng)設(shè)備的第一設(shè)備信息及所述目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      步驟s3:根據(jù)所述第一設(shè)備信息和所述第二設(shè)備信息生成第一設(shè)備認(rèn)證信息,發(fā)送所述第一設(shè)備認(rèn)證信息給所述目標(biāo)藍(lán)牙設(shè)備,接收所述目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如所述設(shè)備認(rèn)證結(jié)果為配對(duì)信息,則執(zhí)行步驟s4;如所述設(shè)備認(rèn)證結(jié)果為認(rèn)證成功,則執(zhí)行步驟s5;如所述設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼,則斷開連接,結(jié)束;

      步驟s4:通過所述移動(dòng)設(shè)備顯示所述配對(duì)信息,并獲取所述目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,當(dāng)獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下時(shí),執(zhí)行步驟s5;

      步驟s5:配對(duì)成功,與所述目標(biāo)藍(lán)牙設(shè)備通信,結(jié)束。

      可選地,所述步驟s2之前,還包括:

      判斷所述移動(dòng)設(shè)備與所述目標(biāo)藍(lán)牙設(shè)備是否已綁定,是則執(zhí)行步驟s2;否則與所述目標(biāo)藍(lán)牙設(shè)備綁定后,執(zhí)行步驟s2。

      可選地,所述步驟s2中,所述獲取所述移動(dòng)設(shè)備的第一設(shè)備信息,具體為:獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符,將所述設(shè)備標(biāo)識(shí)符轉(zhuǎn)換為第一預(yù)設(shè)格式后作為第一設(shè)備信息。

      可選地,所述獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符之前,還包括:判斷所述移動(dòng)設(shè)備中是否存有設(shè)備標(biāo)識(shí)符,是則獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符;否則生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中,獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符。

      可選地,所述步驟s2中,所述獲取所述移動(dòng)設(shè)備的第一設(shè)備信息,具體為:獲取所述移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào)。

      可選地,所述獲取所述移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào),具體包括:

      步驟a1:將所述設(shè)備標(biāo)識(shí)、所述系統(tǒng)標(biāo)識(shí)和所述設(shè)備序列號(hào)作為當(dāng)前待獲取設(shè)備信息;

      步驟a2:獲取所述當(dāng)前待獲取設(shè)備信息中的其中一個(gè),判斷是否獲取成功,是則將其作為所述移動(dòng)設(shè)備的第一設(shè)備信息,繼續(xù);否則將其從所述當(dāng)前待獲取設(shè)備信息中移除,執(zhí)行步驟a3;

      步驟a3:判斷是否還有待獲取設(shè)備信息,是則將所述待獲取設(shè)備信息作為當(dāng)前待獲取設(shè)備信息,返回步驟a2;否則斷開連接,結(jié)束。

      可選地,所述步驟s2中,獲取所述目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息,具體為:向所述目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收所述目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;所述第二設(shè)備信息包括mac地址和長(zhǎng)期密鑰。

      可選地,所述步驟s3中,所述根據(jù)所述第一設(shè)備信息和所述第二設(shè)備信息生成第一設(shè)備認(rèn)證信息,具體為:將所述第一設(shè)備信息、所述第二設(shè)備信息及預(yù)置的廠商信息生成第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息。

      可選地,所述步驟s3中,所述發(fā)送所述第一設(shè)備認(rèn)證信息給所述目標(biāo)藍(lán)牙設(shè)備之后,還包括:

      步驟b:所述目標(biāo)藍(lán)牙設(shè)備判斷自身與所述第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備是否配對(duì)過,是則將認(rèn)證成功信息作為認(rèn)證結(jié)果返回,否則生成配對(duì)信息并作為認(rèn)證結(jié)果返回。

      可選地,所述步驟s2中,所述發(fā)送所述第一設(shè)備認(rèn)證信息給所述目標(biāo)藍(lán)牙設(shè)備之前,還包括:發(fā)送所述第一設(shè)備信息給所述目標(biāo)藍(lán)牙設(shè)備;

      所述目標(biāo)藍(lán)牙設(shè)備根據(jù)所述第一設(shè)備信息、自身的第二設(shè)備信息和預(yù)置的廠商信息生成第二設(shè)備認(rèn)證信息;

      所述步驟b之前,還包括:所述目標(biāo)藍(lán)牙設(shè)備判斷所述第一設(shè)備認(rèn)證信息與所述第二設(shè)備認(rèn)證信息是否匹配,是則繼續(xù);否則返回錯(cuò)誤碼。

      可選地,所述步驟s4中,還包括:判斷預(yù)設(shè)時(shí)間內(nèi)是否獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息,是則繼續(xù);否則斷開連接,結(jié)束。

      可選地,所述步驟s2之前,還包括:與所述目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      所述步驟s3中,所述發(fā)送所述第一設(shè)備認(rèn)證信息給所述目標(biāo)藍(lán)牙設(shè)備,具體為:使用所述會(huì)話密鑰對(duì)所述第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送所述第一設(shè)備認(rèn)證信息密文給所述目標(biāo)藍(lán)牙設(shè)備。

      可選地,所述方法還包括:獲取所述移動(dòng)設(shè)備的附加信息,發(fā)送所述附加信息給所述目標(biāo)藍(lán)牙設(shè)備;

      當(dāng)用戶按下所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵時(shí),所述目標(biāo)藍(lán)牙設(shè)備顯示所述附加信息。

      另一方面,本發(fā)明還提供了一種與藍(lán)牙設(shè)備的配對(duì)裝置,包括:

      掃描連接模塊,用于掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,從中選擇目標(biāo)藍(lán)牙設(shè)備,連接所述目標(biāo)藍(lán)牙設(shè)備;

      第一獲取模塊,用于獲取所述移動(dòng)設(shè)備的第一設(shè)備信息;

      第二獲取模塊,用于獲取所述目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      第一生成模塊,用于根據(jù)所述第一獲取模塊獲取到的第一設(shè)備信息和所述第二獲取模塊獲取到的第二設(shè)備信息生成第一設(shè)備認(rèn)證信息;

      發(fā)送模塊,用于發(fā)送所述第一生成模塊生成的第一設(shè)備認(rèn)證信息給所述目標(biāo)藍(lán)牙設(shè)備;

      接收模塊,用于在所述發(fā)送模塊發(fā)送第一生成模塊404生成的第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備之后,接收所述目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果;

      顯示模塊,用于當(dāng)所述接收模塊接收到的設(shè)備認(rèn)證結(jié)果為配對(duì)信息時(shí),通過所述移動(dòng)設(shè)備顯示所述配對(duì)信息;

      第三獲取模塊,用于在所述顯示模塊通過所述移動(dòng)設(shè)備顯示所述配對(duì)信息之后,獲取所述目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息;

      通訊模塊,用于當(dāng)所述第三獲取模塊獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下時(shí),判定配對(duì)成功,與所述目標(biāo)藍(lán)牙設(shè)備通信;還用于當(dāng)所述接收模塊接收到的設(shè)備認(rèn)證結(jié)果為認(rèn)證成功時(shí),判定配對(duì)成功,與所述目標(biāo)藍(lán)牙設(shè)備通信;

      斷開模塊,用于當(dāng)所述接收模塊接收到的設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼時(shí),斷開連接。

      可選地,所述裝置還包括:第一判斷模塊和綁定模塊;

      所述第一判斷模塊,用于判斷所述移動(dòng)設(shè)備與所述目標(biāo)藍(lán)牙設(shè)備是否已綁定;

      所述第一獲取模塊,具體用于:當(dāng)所述第一判斷模塊判斷出所述移動(dòng)設(shè)備與所述目標(biāo)藍(lán)牙設(shè)備已綁定時(shí),獲取所述移動(dòng)設(shè)備的第一設(shè)備信息;

      所述綁定模塊,用于當(dāng)所述第一判斷模塊判斷出所述移動(dòng)設(shè)備與所述目標(biāo)藍(lán)牙設(shè)備未綁定時(shí),與所述目標(biāo)藍(lán)牙設(shè)備綁定;

      所述第一獲取模塊,還用于在所述綁定模塊與目標(biāo)藍(lán)牙設(shè)備綁定之后,獲取所述移動(dòng)設(shè)備的第一設(shè)備信息。

      可選地,所述第一獲取模塊,具體用于:獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符,將所述設(shè)備標(biāo)識(shí)符轉(zhuǎn)換為第一預(yù)設(shè)格式后作為第一設(shè)備信息。

      可選地,所述裝置還包括:第二判斷模塊和第二生成模塊;

      所述第二判斷模塊,用于判斷所述移動(dòng)設(shè)備中是否存有設(shè)備標(biāo)識(shí)符;

      所述第一獲取模塊,具體用于:當(dāng)所述第二判斷模塊判斷出所述移動(dòng)設(shè)備中存有設(shè)備標(biāo)識(shí)符時(shí),獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符;

      所述第二生成模塊,用于當(dāng)所述第二判斷模塊判斷出所述移動(dòng)設(shè)備中不存有設(shè)備標(biāo)識(shí)符時(shí),生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中;

      所述第一獲取模塊,還用于在所述第二生成模塊生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中之后,獲取所述移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符。

      可選地,所述第一獲取模塊,具體用于:獲取所述移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào)。

      可選地,所述第一獲取模塊,具體包括:第一作為單元、獲取單元、第一判斷單元、第二作為單元、移除單元和第二判斷單元;

      所述第一作為單元,用于將所述設(shè)備標(biāo)識(shí)、所述系統(tǒng)標(biāo)識(shí)和所述設(shè)備序列號(hào)作為當(dāng)前待獲取設(shè)備信息;

      所述獲取單元,用于獲取所述當(dāng)前待獲取設(shè)備信息中的其中一個(gè);

      所述第一判斷單元,用于判斷所述獲取單元是否獲取成功;

      所述第二作為單元,用于當(dāng)所述第一判斷單元判斷出所述獲取單元獲取成功時(shí),將所述獲取單元獲取到設(shè)備信息作為所述移動(dòng)設(shè)備的第一設(shè)備信息;

      所述第二獲取模塊,具體用于:在所述第二作為單元將所述獲取單元獲取到設(shè)備信息作為所述移動(dòng)設(shè)備的第一設(shè)備信息之后,獲取所述目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      所述移除單元,用于當(dāng)所述第一判斷單元判斷出所述獲取單元未獲取成功時(shí),將所述獲取單元獲取到的設(shè)備信息從所述當(dāng)前待獲取設(shè)備信息中移除;

      所述第二判斷單元,用于在所述移除單元將所述獲取單元獲取到的設(shè)備信息從所述當(dāng)前待獲取設(shè)備信息中移除之后,判斷是否還有待獲取設(shè)備信息;

      所述第一作為單元,還用于在所述第二判斷單元判斷出還有待獲取設(shè)備信息時(shí),將所述待獲取設(shè)備信息作為當(dāng)前待獲取設(shè)備信息;

      所述斷開模塊,還用于當(dāng)所述第二判斷單元判斷出沒有待獲取設(shè)備信息時(shí),斷開連接。

      可選地,所述第二獲取模塊,具體用于:向所述目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收所述目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;所述第二設(shè)備信息包括mac地址和長(zhǎng)期密鑰。

      可選地,所述第一生成模塊,具體用于:根據(jù)所述第一設(shè)備信息、所述第二設(shè)備信息及預(yù)置的廠商信息生成第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息。

      可選地,所述裝置還包括:第三判斷模塊;

      所述第三判斷模塊,用于判斷所述第三獲取模塊在預(yù)設(shè)時(shí)間內(nèi)是否獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息;

      所述通訊模塊,具體用于:當(dāng)所述第三判斷模塊判斷出所述第三獲取模塊在預(yù)設(shè)時(shí)間內(nèi)獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息時(shí),判定配對(duì)成功,與所述目標(biāo)藍(lán)牙設(shè)備通信;還用于當(dāng)所述接收模塊接收到的設(shè)備認(rèn)證結(jié)果為認(rèn)證成功時(shí),判定配對(duì)成功,與所述目標(biāo)藍(lán)牙設(shè)備通信;

      所述斷開模塊,還用于當(dāng)所述第三判斷模塊判斷出所述第三獲取模塊在預(yù)設(shè)時(shí)間內(nèi)未獲取到所述目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息時(shí),斷開連接。

      可選地,所述裝置還包括:協(xié)商模塊;

      所述協(xié)商模塊,用于與所述目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      所述第一獲取模塊,具體用于:在所述協(xié)商模塊與所述目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰之后,獲取所述移動(dòng)設(shè)備的第一設(shè)備信息;

      所述發(fā)送模塊,具體用于:使用所述協(xié)商模塊協(xié)商的會(huì)話密鑰對(duì)所述第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送所述第一設(shè)備認(rèn)證信息密文給所述目標(biāo)藍(lán)牙設(shè)備。

      可選地,所述裝置還包括:第四獲取模塊;

      所述第四獲取模塊,用于獲取所述移動(dòng)設(shè)備的附加信息;

      所述發(fā)送模塊,還用于將所述第四獲取模塊獲取到的附加信息發(fā)送給所述目標(biāo)藍(lán)牙設(shè)備。

      本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):

      本發(fā)明中,在移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信時(shí),在移動(dòng)設(shè)備端生成含有設(shè)備信息的設(shè)備認(rèn)證信息并發(fā)送給藍(lán)牙設(shè)備供藍(lán)牙設(shè)備認(rèn)證移動(dòng)設(shè)備,且在首次配對(duì)時(shí)需要用戶參與按鍵確認(rèn)來完成配對(duì)過程,不僅實(shí)現(xiàn)了防重放攻擊,又縮短了移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信的時(shí)間,提升了用戶體驗(yàn)。

      附圖說明

      圖1為本發(fā)明實(shí)施例一提供的一種與藍(lán)牙設(shè)備的配對(duì)方法流程圖;

      圖2為本發(fā)明實(shí)施例二提供的一種ios系統(tǒng)中與藍(lán)牙設(shè)備的配對(duì)方法流程圖;

      圖3為本發(fā)明實(shí)施例三提供的一種android系統(tǒng)中與藍(lán)牙設(shè)備的配對(duì)方法流程圖;

      圖4為本發(fā)明實(shí)施例四提供的一種與藍(lán)牙設(shè)備的配對(duì)裝置的模塊組成框圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚完整的描述;顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      需說明地,一方面,移動(dòng)設(shè)備與藍(lán)牙設(shè)備的配對(duì)包括兩個(gè)層面,即藍(lán)牙協(xié)議層的配對(duì)和應(yīng)用層的配對(duì)。為便于區(qū)分,本發(fā)明中將藍(lán)牙協(xié)議層的配對(duì)稱為綁定,將應(yīng)用層的配對(duì)稱為配對(duì),即本發(fā)明中的技術(shù)方案適用于應(yīng)用層的配對(duì)。另一方面,本發(fā)明中的通信,是指移動(dòng)設(shè)備與藍(lán)牙設(shè)備進(jìn)行api功能操作的數(shù)據(jù)交互,不包含配對(duì)過程中移動(dòng)設(shè)備與藍(lán)牙設(shè)備的數(shù)據(jù)交互。

      實(shí)施例一

      本發(fā)明實(shí)施例一提供一種與藍(lán)牙設(shè)備配對(duì)的方法,如圖1所示,包括:

      步驟101:掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,從中選擇目標(biāo)藍(lán)牙設(shè)備,連接目標(biāo)藍(lán)牙設(shè)備;

      步驟102:獲取移動(dòng)設(shè)備的第一設(shè)備信息及目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      步驟103:根據(jù)獲取到的第一設(shè)備信息和第二設(shè)備信息生成第一設(shè)備認(rèn)證信息,發(fā)送第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備,接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如設(shè)備認(rèn)證結(jié)果為配對(duì)信息,則執(zhí)行步驟104;如設(shè)備認(rèn)證結(jié)果為認(rèn)證成功,則執(zhí)行步驟105;如設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼,則斷開連接,結(jié)束;

      步驟104:通過移動(dòng)設(shè)備顯示接收到的配對(duì)信息,并獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,當(dāng)獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下時(shí),執(zhí)行步驟105;

      步驟105:配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備通信,結(jié)束。

      在本實(shí)施例中,步驟102之前,還包括:

      判斷移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備是否已綁定,是則執(zhí)行步驟102;否則與目標(biāo)藍(lán)牙設(shè)備綁定后,執(zhí)行步驟102。

      可選地,步驟102中,獲取移動(dòng)設(shè)備的第一設(shè)備信息,具體為:獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符,將獲取到的設(shè)備標(biāo)識(shí)符轉(zhuǎn)換為第一預(yù)設(shè)格式后作為第一設(shè)備信息。

      對(duì)應(yīng)地,獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符之前,還包括:判斷移動(dòng)設(shè)備中是否存有設(shè)備標(biāo)識(shí)符,是則獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符;否則生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中,獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符。

      可選地,步驟102中,獲取移動(dòng)設(shè)備的第一設(shè)備信息,具體為:獲取移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào)。

      其中,獲取移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào),具體包括:

      步驟a1:將設(shè)備標(biāo)識(shí)、系統(tǒng)標(biāo)識(shí)和設(shè)備序列號(hào)作為當(dāng)前待獲取設(shè)備信息;

      步驟a2:獲取當(dāng)前待獲取設(shè)備信息中的其中一個(gè),判斷是否獲取成功,是則將其作為移動(dòng)設(shè)備的第一設(shè)備信息,繼續(xù);否則將其從當(dāng)前待獲取設(shè)備信息中移除,執(zhí)行步驟a3;

      步驟a3:判斷是否還有待獲取設(shè)備信息,是則將待獲取設(shè)備信息作為當(dāng)前待獲取設(shè)備信息,返回步驟a2;否則斷開連接,結(jié)束。

      本實(shí)施例步驟102中,獲取目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息,具體為:向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;其中,第二設(shè)備信息包括mac地址和長(zhǎng)期密鑰。

      本實(shí)施例步驟103中,根據(jù)第一設(shè)備信息和第二設(shè)備信息生成第一設(shè)備認(rèn)證信息,具體為:根據(jù)第一設(shè)備信息、第二設(shè)備信息及預(yù)置的廠商信息生成第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息。

      進(jìn)一步地,本實(shí)施例步驟103中,發(fā)送第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備之后,還包括:

      步驟b:目標(biāo)藍(lán)牙設(shè)備判斷自身與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備是否配對(duì)過,是則將認(rèn)證成功信息作為認(rèn)證結(jié)果返回,否則生成配對(duì)信息并作為認(rèn)證結(jié)果返回。

      對(duì)應(yīng)地,步驟102中,發(fā)送第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備之前,還包括:發(fā)送第一設(shè)備信息給目標(biāo)藍(lán)牙設(shè)備;

      目標(biāo)藍(lán)牙設(shè)備根據(jù)接收到的第一設(shè)備信息、自身的第二設(shè)備信息和預(yù)置的廠商信息生成第二設(shè)備認(rèn)證信息;

      步驟b之前,還包括:目標(biāo)藍(lán)牙設(shè)備判斷第一設(shè)備認(rèn)證信息與第二設(shè)備認(rèn)證信息是否匹配,是則繼續(xù);否則返回錯(cuò)誤碼。

      本實(shí)施例步驟104中,還包括:判斷預(yù)設(shè)時(shí)間內(nèi)是否獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息,是則繼續(xù);否則斷開連接,結(jié)束。

      本實(shí)施例步驟102之前,還包括:與目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      對(duì)應(yīng)地,步驟103中,發(fā)送第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備,具體為:使用會(huì)話密鑰對(duì)第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送第一設(shè)備認(rèn)證信息密文給目標(biāo)藍(lán)牙設(shè)備。

      本實(shí)施例中的方法,還包括:獲取移動(dòng)設(shè)備的附加信息,發(fā)送附加信息給目標(biāo)藍(lán)牙設(shè)備;

      對(duì)應(yīng)地,當(dāng)用戶按下目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵時(shí),目標(biāo)藍(lán)牙設(shè)備顯示所述附加信息。

      實(shí)施例二

      本發(fā)明實(shí)施例二提供一種ios系統(tǒng)中與藍(lán)牙設(shè)備的配對(duì)方法,如圖2所示,包括:

      步驟201:掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,判斷是否掃描到目標(biāo)藍(lán)牙設(shè)備,是則執(zhí)行步驟202,否則繼續(xù)執(zhí)行步驟201;

      具體地,掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,獲取掃描到的藍(lán)牙設(shè)備的廣播數(shù)據(jù),解析獲取到的廣播數(shù)據(jù)得到對(duì)應(yīng)的藍(lán)牙設(shè)備的設(shè)備名稱,判斷得到的設(shè)備名稱與目標(biāo)藍(lán)牙設(shè)備的設(shè)備名稱是否相同,是則確判定掃描到目標(biāo)藍(lán)牙設(shè)備,否則判定未掃描到目標(biāo)藍(lán)牙設(shè)備。

      步驟202:連接目標(biāo)藍(lán)牙設(shè)備,判斷是否連接成功,是則執(zhí)行步驟203,否則結(jié)束;

      具體地,調(diào)用第一函數(shù)接口連接目標(biāo)藍(lán)牙設(shè)備,并判斷移動(dòng)設(shè)備系統(tǒng)回調(diào)的第二函數(shù)接口中第二個(gè)參數(shù)是否為第一預(yù)設(shè)值,第三個(gè)參數(shù)的值是否為第二預(yù)設(shè)值,如判斷結(jié)果均為是,則判定目標(biāo)藍(lán)牙設(shè)備連接成功,否則判定目標(biāo)藍(lán)牙設(shè)備連接失??;

      在本實(shí)施例中,第一函數(shù)接口具體為:

      bluetoothdevice.connectgatt(contextcontext,booleanautoconnect,bluetoothgattcallbackcallback);

      其中,參數(shù)callback具體為第二函數(shù)接口;

      第二函數(shù)接口具體為:

      publicvoidonconnectionstatechange(finalbluetoothgattgatt,intstatus,intnewstate);

      如第二函數(shù)接口中第二個(gè)參數(shù)status為bluetoothgatt.gatt_success,且第三個(gè)參數(shù)newstate為bluetoothprofile.state_connected時(shí),則判定目標(biāo)藍(lán)牙設(shè)備連接成功;否則判定目標(biāo)藍(lán)牙設(shè)備連接失敗。

      步驟203:判斷移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備是否已綁定,是則執(zhí)行步驟205,否則執(zhí)行步驟204;

      具體地,調(diào)用第三函數(shù)接口,并判斷接收到的返回值的類型,如接收到的返回值為bluetoothdevice.bond_bonded,則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備已綁定;如接收到的返回值為bluetoothdevice.bond_none,則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備未綁定;

      更加具體地,調(diào)用第三函數(shù)接口獲取移動(dòng)設(shè)備中保存的綁定信息,并判斷獲取到的綁定信息中是否含有目標(biāo)藍(lán)牙設(shè)備的設(shè)備名稱,是則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備已綁定;否則,判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備未綁定;

      在本實(shí)施例中,第三函數(shù)接口具體為:bluetoothdevice.getbondstate()。

      步驟204:與目標(biāo)藍(lán)牙設(shè)備綁定,判斷是否綁定成功,是則執(zhí)行步驟205;否則斷開連接,結(jié)束;

      具體地,調(diào)用第四函數(shù)接口與目標(biāo)藍(lán)牙設(shè)備綁定,并判斷返回值的類型,如返回值為bluetoothdevice.bond_bonded,則判定綁定成功,否則判定綁定失敗。

      在本實(shí)施例中,第四函數(shù)接口具體為:bluetoothdevice.createbond()。

      步驟205:與目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送協(xié)商會(huì)話密鑰指令,并接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰;

      例如,在本實(shí)施例中,接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰為01493b99be98505ef6278f51e68be360bd13bf8133d93949cdc471dae9ff359b0f1c3c600ee66cbdf2b25ade9cfe8d984dd250752c0ba785b2510761c27903a6345c342b42ba234ca8b2eb852d08fc48fc351ab8c05bc90c58eec7e26aeca6098422f4ec7cb2f59c232fe22b124e4b8859339056c267654a84815607693d6a99。

      進(jìn)一步地,在本實(shí)施例中,向目標(biāo)藍(lán)牙設(shè)備發(fā)送協(xié)商會(huì)話密鑰指令之后,如未接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰,則斷開連接,結(jié)束。

      步驟206:判斷移動(dòng)設(shè)備中是否含有設(shè)備標(biāo)識(shí)符,是則執(zhí)行步驟208,否則執(zhí)行步驟207;

      具體地,查找到移動(dòng)設(shè)備的預(yù)設(shè)存儲(chǔ)區(qū),判斷預(yù)設(shè)存儲(chǔ)區(qū)是否為空,是則判定移動(dòng)設(shè)備中不含有設(shè)備標(biāo)識(shí)符,否則判定移動(dòng)設(shè)備中含有設(shè)備標(biāo)識(shí)符;

      例如,在本實(shí)施例中,判斷出預(yù)設(shè)存儲(chǔ)區(qū)為空,判定移動(dòng)設(shè)備中不含有設(shè)備標(biāo)識(shí)符,執(zhí)行步驟207。

      步驟207:生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中;

      具體地,調(diào)用第五函數(shù)接口生成設(shè)備標(biāo)識(shí)符,并將生成的設(shè)備標(biāo)識(shí)符保存至移動(dòng)設(shè)備的預(yù)設(shè)存儲(chǔ)區(qū)中;

      在本實(shí)施例中,第五函數(shù)接口具體為:+(nsstring*)getkeychainidentifier;

      例如,在本實(shí)施例中,生成的設(shè)備標(biāo)識(shí)符為4f6b94e1-033c-440d-aa79-fe743a61092f。

      步驟208:從移動(dòng)設(shè)備中獲取設(shè)備標(biāo)識(shí)符,將其轉(zhuǎn)換為第一預(yù)設(shè)格式后作為移動(dòng)設(shè)備的第一設(shè)備信息并保存;

      在本實(shí)施例中,將其轉(zhuǎn)換為第一預(yù)設(shè)格式后作為移動(dòng)設(shè)備的第一設(shè)備信息并保存,具體為:將獲取到的設(shè)備標(biāo)識(shí)符中含有的連詞符“-”移除后作為移動(dòng)設(shè)備的第一設(shè)備信息并保存;

      例如,在本實(shí)施例中,從移動(dòng)設(shè)備的預(yù)設(shè)存儲(chǔ)區(qū)中獲取到的設(shè)備標(biāo)識(shí)符為4f6b94e1-033c-440d-aa79-fe743a61092f,轉(zhuǎn)換為第一預(yù)設(shè)格式后為4f6b94e1033c440daa79fe743a61092f。

      步驟209:獲取移動(dòng)設(shè)備的附加信息,將獲取到的附加信息與第一設(shè)備信息發(fā)送給目標(biāo)藍(lán)牙設(shè)備,當(dāng)接收到目標(biāo)藍(lán)牙設(shè)備返回的響應(yīng)時(shí),執(zhí)行步驟210;

      具體地,調(diào)用第六函數(shù)接口獲取移動(dòng)設(shè)備的附加信息;其中,附加信息具體為移動(dòng)設(shè)備的設(shè)備名稱和設(shè)備品牌;

      在本實(shí)施例中,第六函數(shù)接口具體為:+(uidevice*)currentdevice;

      例如,在本實(shí)施例中,獲取到移動(dòng)設(shè)備的附加信息為:設(shè)備名稱為ipodtouch,設(shè)備品牌為apple。

      進(jìn)一步地,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備接收到附加信息和第一設(shè)備信息時(shí),將其保存。

      步驟210:獲取目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      在本實(shí)施例中,第二設(shè)備信息具體為目標(biāo)藍(lán)牙設(shè)備的mac地址和長(zhǎng)期密鑰(英文全稱:longtermkey,簡(jiǎn)稱:ltk);

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;

      例如,在本實(shí)施例中,接收到的目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息為:mac地址為cf:d5:57:fb:22:f4,ltk信息為6634da9b3304d68f90edae3d63e66bcf。

      進(jìn)一步地,本步驟中還包括:判斷預(yù)設(shè)時(shí)間內(nèi)是否接收到目標(biāo)藍(lán)牙設(shè)備返回的mac地址和ltk信息,是則繼續(xù);否則超時(shí),斷開連接,結(jié)束;

      優(yōu)選地,預(yù)設(shè)時(shí)間為為2秒。

      更進(jìn)一步地,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備將自身的第二設(shè)備信息返回后,還包括:根據(jù)自身的第二設(shè)備信息、自身預(yù)置的廠商信息及保存的第一設(shè)備信息生成第二預(yù)設(shè)格式的第二設(shè)備認(rèn)證信息并保存;

      其中,第二預(yù)設(shè)格式具體為:移動(dòng)設(shè)備的第一設(shè)備信息/目標(biāo)藍(lán)牙設(shè)備的mac地址/目標(biāo)藍(lán)牙設(shè)備的長(zhǎng)期密鑰/目標(biāo)藍(lán)牙設(shè)備的預(yù)置廠商信息;

      例如,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備的預(yù)置廠商信息為46545361666549444465706172746d656e74,目標(biāo)藍(lán)牙設(shè)備生成的第二設(shè)備認(rèn)證信息為:4f6b94e1033c440daa79fe743a61092f/cfd557fb22f4/6634da9b3304d68f90edae3d63e66bcf/46545361666549444465706172746d656e74。

      在本實(shí)施例中,設(shè)備認(rèn)證信息的格式不限為上述格式,可以自行設(shè)定。

      步驟211:根據(jù)獲取到的第二設(shè)備信息和保存的第一設(shè)備信息生成第一設(shè)備認(rèn)證信息;

      具體地,根據(jù)獲取到的mac地址、長(zhǎng)期密鑰、保存的第一設(shè)備信息和預(yù)置的目標(biāo)藍(lán)牙設(shè)備的廠商信息生成上述第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息;

      例如,在本實(shí)施例中,根據(jù)上述獲取到的mac地址和長(zhǎng)期密鑰、及保存的第一設(shè)備信息和預(yù)置的目標(biāo)藍(lán)牙設(shè)備的廠商信息生成的第一設(shè)備認(rèn)證信息為:4f6b94e1033c440daa79fe743a61092f/cfd557fb22f4/6634da9b3304d68f90edae3d63e66bcf/46545361666549444465706172746d656e74。

      步驟212:使用協(xié)商的會(huì)話密鑰對(duì)生成的第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送第一設(shè)備認(rèn)證信息密文給目標(biāo)藍(lán)牙設(shè)備;

      例如,在本實(shí)施例中,使用協(xié)商的會(huì)話密鑰對(duì)生成的第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文為2c37a1637d14896882b29d18fb203746dc1811ccfc58912c5dab690c0d0f2eb710cd068b7f59a154sefea840bd459419;

      進(jìn)一步地,在本實(shí)施例中,當(dāng)目標(biāo)藍(lán)牙設(shè)備接收到第一設(shè)備認(rèn)證信息密文時(shí),執(zhí)行以下操作:

      步驟b1:使用會(huì)話密鑰解密接收到的第一設(shè)備認(rèn)證信息密文得到第一設(shè)備認(rèn)證信息,判斷得到的第一設(shè)備認(rèn)證信息是否正確,是則執(zhí)行步驟b2,否則返回錯(cuò)誤碼,結(jié)束;

      具體地,目標(biāo)藍(lán)牙設(shè)備判斷解密得到的第一設(shè)備認(rèn)證信息與自身生成的第二設(shè)備認(rèn)證信息是否相同,是則判定得到的第一設(shè)備認(rèn)證信息正確,否則判定得到的第一設(shè)備認(rèn)證信息不正確;

      例如,在本實(shí)施例中,解密得到的第一設(shè)備認(rèn)證信息為4f6b94e1033c440daa79fe743a61092f/cfd557fb22f4/6634da9b3304d68f90edae3d63e66bcf/46545361666549444465706172746d656e74,與自身生成的第二設(shè)備認(rèn)證信息相同,判定正確。

      步驟b2:目標(biāo)藍(lán)牙設(shè)備根據(jù)得到的第一設(shè)備認(rèn)證信息判斷是否與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),是則將認(rèn)證成功信息作為設(shè)備認(rèn)證結(jié)果返回,并與移動(dòng)設(shè)備通信;否則生成配對(duì)信息并作為設(shè)備認(rèn)證結(jié)果返回;

      在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備根據(jù)得到的第一設(shè)備認(rèn)證信息判斷是否與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),具體為:目標(biāo)藍(lán)牙設(shè)備對(duì)得到的第一設(shè)備認(rèn)證信息計(jì)算摘要值并作為配對(duì)信息,并判斷自身保存的配對(duì)信息中是否含有計(jì)算得到的配對(duì)信息,是則判定與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),否則判定與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備標(biāo)識(shí)對(duì)應(yīng)的移動(dòng)設(shè)備未配對(duì)。

      在本實(shí)施例中,配對(duì)信息具體為6字節(jié)的pin碼;

      進(jìn)一步地,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備返回配對(duì)信息后,還包括:將配對(duì)信息顯示給用戶,即將6字節(jié)的pin碼顯示給用戶,當(dāng)接收到來自用戶的確認(rèn)鍵按鍵信息時(shí),將計(jì)算得到的配對(duì)信息保存,并顯示保存的移動(dòng)設(shè)備的設(shè)備名稱和設(shè)備品牌。

      例如,在本實(shí)施例中,認(rèn)證成功信息為ok;6字節(jié)的pin碼為564823;錯(cuò)誤碼為false。

      步驟213:接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如設(shè)備認(rèn)證結(jié)果為認(rèn)證成功,則執(zhí)行步驟217;如設(shè)備認(rèn)證結(jié)果為配對(duì)信息,則執(zhí)行步驟214;如設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼,則斷開連接,結(jié)束;

      具體地,接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如接收到的設(shè)備認(rèn)證結(jié)果為ok,則執(zhí)行步驟217;如接收到的設(shè)備認(rèn)證結(jié)果為6字節(jié)的pin碼564823,則執(zhí)行步驟214;如接收到的設(shè)備認(rèn)證結(jié)果為false,則結(jié)束。

      步驟214:通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的配對(duì)信息給用戶;

      具體地,通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的pin碼給用戶;

      進(jìn)一步地,在本實(shí)施例中,通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的pin碼給用戶之后,用戶比對(duì)移動(dòng)設(shè)備顯示的pin碼與目標(biāo)藍(lán)牙設(shè)備顯示的pin碼是否相同,是則按下目標(biāo)藍(lán)牙設(shè)備上的確認(rèn)鍵,否則按下目標(biāo)藍(lán)牙設(shè)備上的取消鍵。

      步驟215:獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,判斷是否獲取到確認(rèn)鍵被按下的狀態(tài)信息,是則執(zhí)行步驟217,否則執(zhí)行步驟216;

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取按鍵狀態(tài)指令來獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,并判斷是否獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的狀態(tài)信息,是則判定配對(duì)成功,執(zhí)行步驟217;否則判定配對(duì)未成功,執(zhí)行步驟216。

      需要說明地,在本實(shí)施例中,藍(lán)牙設(shè)備根據(jù)與移動(dòng)設(shè)備配對(duì)的先后順序,依次保存對(duì)應(yīng)的配對(duì)信息,且保存的配對(duì)信息的個(gè)數(shù)有限,當(dāng)藍(lán)牙設(shè)備保存的配對(duì)信息的個(gè)數(shù)達(dá)到最大值時(shí),則將最先保存的配對(duì)信息移除,并將本次配對(duì)成功的配對(duì)信息保存。

      步驟216:判斷是否超時(shí),是則斷開連接,結(jié)束;否則返回步驟215;

      優(yōu)選地,在本實(shí)施例中,超時(shí)時(shí)間為60秒。

      步驟217:配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)通訊,結(jié)束。

      實(shí)施例三

      本發(fā)明實(shí)施例三提供一種android系統(tǒng)中與藍(lán)牙設(shè)備的配對(duì)方法,如圖3所示,包括:

      步驟301:掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,判斷是否掃描到目標(biāo)藍(lán)牙設(shè)備,是則執(zhí)行步驟302,否則繼續(xù)執(zhí)行步驟301;

      具體地,掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,獲取掃描到的藍(lán)牙設(shè)備的廣播數(shù)據(jù),解析獲取到的廣播數(shù)據(jù)得到對(duì)應(yīng)的藍(lán)牙設(shè)備的設(shè)備名稱,判斷得到的設(shè)備名稱與目標(biāo)藍(lán)牙設(shè)備的設(shè)備名稱是否相同,是則判定掃描到目標(biāo)藍(lán)牙設(shè)備,否則判定未掃描到目標(biāo)藍(lán)牙設(shè)備。

      步驟302:連接目標(biāo)藍(lán)牙設(shè)備,判斷是否連接成功,是則執(zhí)行步驟303,否則結(jié)束;

      具體地,調(diào)用第一函數(shù)接口連接目標(biāo)藍(lán)牙設(shè)備,并判斷移動(dòng)設(shè)備系統(tǒng)回調(diào)的第二函數(shù)接口中第二個(gè)參數(shù)是否為第一預(yù)設(shè)值,第三個(gè)參數(shù)的值是否為第二預(yù)設(shè)值,如判斷結(jié)果均為是,則判定目標(biāo)藍(lán)牙設(shè)備連接成功,否則判定目標(biāo)藍(lán)牙設(shè)備連接失?。?/p>

      在本實(shí)施例中,第一函數(shù)接口具體為:

      bluetoothdevice.connectgatt(contextcontext,booleanautoconnect,bluetoothgattcallbackcallback);

      其中,參數(shù)callback具體為第二函數(shù)接口;

      第二函數(shù)接口具體為:

      publicvoidonconnectionstatechange(finalbluetoothgattgatt,intstatus,intnewstate);

      如第二函數(shù)接口中第二個(gè)參數(shù)status為bluetoothgatt.gatt_success,且第三個(gè)參數(shù)newstate為bluetoothprofile.state_connected時(shí),則判定目標(biāo)藍(lán)牙設(shè)備連接成功;否則判定目標(biāo)藍(lán)牙設(shè)備連接失敗。

      步驟303:判斷移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備是否已綁定,是則執(zhí)行步驟305,否則執(zhí)行步驟304;

      具體地,調(diào)用第三函數(shù)接口,并判斷接收到的返回值的類型,如接收到的返回值為bluetoothdevice.bond_bonded,則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備已綁定;如接收到的返回值為bluetoothdevice.bond_none,則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備未綁定;

      更加具體地,調(diào)用第三函數(shù)接口獲取移動(dòng)設(shè)備中保存的綁定信息,并判斷獲取到的綁定信息中是否含有目標(biāo)藍(lán)牙設(shè)備的設(shè)備名稱,是則判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備已綁定;否則,判定移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備未綁定;

      在本實(shí)施例中,第三函數(shù)接口具體為:bluetoothdevice.getbondstate()。

      步驟304:與目標(biāo)藍(lán)牙設(shè)備綁定,判斷是否綁定成功,是則執(zhí)行步驟305;否則斷開連接,結(jié)束;

      具體地,調(diào)用第四函數(shù)接口與目標(biāo)藍(lán)牙設(shè)備綁定,并判斷返回值的類型,如返回值為bluetoothdevice.bond_bonded,則判定綁定成功,否則判定綁定失敗。

      在本實(shí)施例中,第四函數(shù)接口具體為:bluetoothdevice.createbond()。

      步驟305:與目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送協(xié)商會(huì)話密鑰指令,并接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰;

      例如,在本實(shí)施例中,接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰為62de85e768de784c。

      進(jìn)一步地,在本實(shí)施例中,向目標(biāo)藍(lán)牙設(shè)備發(fā)送協(xié)商會(huì)話密鑰指令之后,如未接收到目標(biāo)藍(lán)牙設(shè)備返回的會(huì)話密鑰,則斷開連接,結(jié)束。

      步驟306:獲取移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí),判斷是否獲取成功,是則將其作為第一設(shè)備信息并保存,執(zhí)行步驟309,否則執(zhí)行步驟307;

      在本實(shí)施例中,設(shè)備標(biāo)識(shí)具體為deviceid;

      具體地,調(diào)用第七函數(shù)接口,判斷是否接收到第七函數(shù)接口的返回值,是則判定獲取成功,將接收到的返回值作為第一設(shè)備信息并保存,執(zhí)行步驟309;否則判定獲取失敗,執(zhí)行步驟307;

      在本實(shí)施例中,第七函數(shù)接口具體為:(telephonymanager)context.getsystemservice(context.telephony_service).getdeviceid()。

      例如,在本實(shí)施例中,獲取到移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)為359786053398385,將其作為第一設(shè)備信息保存。

      步驟307:獲取移動(dòng)設(shè)備的系統(tǒng)標(biāo)識(shí),判斷是否獲取成功,是則將其作為第一設(shè)備信息并保存,執(zhí)行步驟309,否則執(zhí)行步驟308;

      在本實(shí)施例中,系統(tǒng)標(biāo)識(shí)具體為androidid;

      具體地,調(diào)用第八函數(shù)接口,判斷是否接收到第八函數(shù)接口的返回值,是則判定獲取成功,將接收到的返回值作為第一設(shè)備信息并保存,執(zhí)行步驟309;否則判定獲取失敗,執(zhí)行步驟308;

      在本實(shí)施例中,第八函數(shù)接口具體為:settings.secure.getstring(context.getcontentresolver(),settings.secure.android_id)。

      例如,在本實(shí)施例中,獲取到移動(dòng)設(shè)備的系統(tǒng)標(biāo)識(shí)為71c48fbcc0b7b505,將其作為第一設(shè)備信息并保存。

      步驟308:獲取移動(dòng)設(shè)備的設(shè)備序列號(hào),判斷是否獲取成功,是則將其作為第一設(shè)備信息并保存,執(zhí)行步驟309,否則斷開連接,結(jié)束;

      具體地,調(diào)用第九函數(shù)接口,判斷是否接收到第八九函數(shù)接口的返回值,是則判定獲取成功,將接收到的返回值作為第一設(shè)備信息并保存,執(zhí)行步驟309;否則判定獲取失敗,斷開連接,結(jié)束;

      在本實(shí)施例中,第九函數(shù)接口具體為:android.os.build.serial。

      例如,在本實(shí)施例中,獲取到移動(dòng)設(shè)備的設(shè)備序列號(hào)為9765d200,將其作為第一設(shè)備信息并保存。

      需說明地,在本實(shí)施例中,步驟306至步驟308的順序可以彼此互換,當(dāng)獲取到移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)、系統(tǒng)標(biāo)識(shí)、設(shè)備序列號(hào)中的其中一個(gè)時(shí),即可執(zhí)行步驟309,當(dāng)移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)、系統(tǒng)標(biāo)識(shí)、設(shè)備序列號(hào)均未獲取到時(shí),斷開連接,結(jié)束。

      步驟309:獲取移動(dòng)設(shè)備的附加信息,將獲取到的附加信息與第一設(shè)備信息發(fā)送給目標(biāo)藍(lán)牙設(shè)備,當(dāng)接收到目標(biāo)藍(lán)牙設(shè)備返回的響應(yīng)時(shí),執(zhí)行步驟310;

      在本實(shí)施例中,附加信息具體為設(shè)備名稱和設(shè)備品牌;

      具體地,調(diào)用第十函數(shù)接口獲取移動(dòng)設(shè)備的設(shè)備名稱,調(diào)用第十一函數(shù)接口獲取移動(dòng)設(shè)備的設(shè)備品牌;

      在本實(shí)施例中,第十函數(shù)接口具體為:android.os.build.model;第十一函數(shù)接口具體為:android.os.build.manufacturer;

      例如,在本實(shí)施例中,獲取到移動(dòng)設(shè)備的附加信息為:設(shè)備名稱為meizu,設(shè)備品牌為mx5。

      進(jìn)一步地,在本實(shí)施例中,當(dāng)藍(lán)牙設(shè)備接收到移動(dòng)設(shè)備的第一設(shè)備信息、設(shè)備名稱和設(shè)備品牌時(shí),將其保存并返回響應(yīng)。

      步驟310:獲取目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      在本實(shí)施例中,第二設(shè)備信息具體為目標(biāo)藍(lán)牙設(shè)備的mac地址和長(zhǎng)期密鑰(英文全稱:longtermkey,簡(jiǎn)稱:ltk);

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;

      例如,在本實(shí)施例中,接收到的目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息為:mac地址為fa:8b:8a:a0:45:ef,ltk信息為1612ad2e3318cdf1b9845623cfd15523。

      進(jìn)一步地,本步驟中還包括:判斷預(yù)設(shè)時(shí)間內(nèi)是否接收到目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息,是則繼續(xù);否則超時(shí),結(jié)束;

      優(yōu)選地,預(yù)設(shè)時(shí)間為為2秒。

      更進(jìn)一步地,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備將自身的第二設(shè)備信息返回后,還包括:根據(jù)自身的第二設(shè)備信息、自身預(yù)置的廠商信息及保存的第一設(shè)備信息生成第二預(yù)設(shè)格式的第二設(shè)備認(rèn)證信息并保存。

      其中,第二預(yù)設(shè)格式具體為:移動(dòng)設(shè)備的第一設(shè)備信息/目標(biāo)藍(lán)牙設(shè)備的mac地址/目標(biāo)藍(lán)牙設(shè)備的長(zhǎng)期密鑰/目標(biāo)藍(lán)牙設(shè)備的預(yù)置廠商信息;

      例如,在本實(shí)施例中,保存的移動(dòng)設(shè)備的第一設(shè)備信息為71c48fbcc0b7b505,目標(biāo)藍(lán)牙設(shè)備的預(yù)置廠商信息為086f,目標(biāo)藍(lán)牙設(shè)備生成的第二設(shè)備認(rèn)證信息為:71c48fbcc0b7b505/fa8b8aa045ef/1612ad2e3318cdf1b9845623cfd15523/086f。

      在本實(shí)施例中,設(shè)備認(rèn)證信息的格式不限為上述格式,可以自行設(shè)定。

      步驟311:根據(jù)獲取到的第二設(shè)備信息和保存的第一設(shè)備信息生成第一設(shè)備認(rèn)證信息;

      具體地,根據(jù)獲取到的mac地址、長(zhǎng)期密鑰、保存的移動(dòng)設(shè)備的第一設(shè)備信息和預(yù)置的目標(biāo)藍(lán)牙設(shè)備的廠商信息生成上述第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息;

      例如,在本實(shí)施例中,保存的移動(dòng)設(shè)備的第一設(shè)備信息具體為移動(dòng)設(shè)備的系統(tǒng)標(biāo)識(shí),生成的第一設(shè)備認(rèn)證信息為71c48fbcc0b7b505/fa8b8aa045ef/1612ad2e3318cdf1b9845623cfd15523/086f。

      步驟312:使用協(xié)商的會(huì)話密鑰對(duì)生成的第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送第一設(shè)備認(rèn)證信息密文給目標(biāo)藍(lán)牙設(shè)備;

      例如,在本實(shí)施例中,使用協(xié)商的會(huì)話密鑰對(duì)生成的第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文為70b0b468218aae020d8f61bcfb8574c504d9f90cb421d80d97362ff7a8690de450a539f02cc2ab925a08166fe7f4874bf295a354ef46ce51094187d521cf3920;

      進(jìn)一步地,在本實(shí)施例中,當(dāng)目標(biāo)藍(lán)牙設(shè)備接收到第一設(shè)備認(rèn)證信息密文時(shí),執(zhí)行以下操作:

      步驟b1:使用會(huì)話密鑰解密接收到的第一設(shè)備認(rèn)證信息密文得到第一設(shè)備認(rèn)證信息,判斷得到的第一設(shè)備認(rèn)證信息是否正確,是則執(zhí)行步驟b2,否則返回錯(cuò)誤碼,結(jié)束;

      具體地,目標(biāo)藍(lán)牙設(shè)備判斷解密得到的第一設(shè)備認(rèn)證信息與自身生成的第二設(shè)備認(rèn)證信息是否相同,是則判定得到的第一設(shè)備認(rèn)證信息正確,否則判定得到的第一設(shè)備認(rèn)證信息不正確;

      例如,在本實(shí)施例中,解密得到的第一設(shè)備認(rèn)證信息為71c48fbcc0b7b505/fa8b8aa045ef/1612ad2e3318cdf1b9845623cfd15523/086f,與自身生成的第二設(shè)備認(rèn)證信息相同,判定正確。

      步驟b2:目標(biāo)藍(lán)牙設(shè)備根據(jù)得到的第一設(shè)備認(rèn)證信息判斷是否與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),是則將認(rèn)證成功信息作為設(shè)備認(rèn)證結(jié)果返回,并與移動(dòng)設(shè)備通信,否則生成配對(duì)信息并作為設(shè)備認(rèn)證結(jié)果返回;

      在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備根據(jù)得到的第一設(shè)備認(rèn)證信息判斷是否與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),具體為:目標(biāo)藍(lán)牙設(shè)備對(duì)得到的第一設(shè)備認(rèn)證信息計(jì)算摘要值并作為配對(duì)信息,判斷自身保存的配對(duì)信息中是否含有計(jì)算得到的配對(duì)信息,是則判定與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備信息對(duì)應(yīng)的移動(dòng)設(shè)備已配對(duì),否則判定與第一設(shè)備認(rèn)證信息中含有的第一設(shè)備標(biāo)識(shí)對(duì)應(yīng)的移動(dòng)設(shè)備未配對(duì)。

      在本實(shí)施例中,配對(duì)信息具體為6字節(jié)的pin碼;

      進(jìn)一步地,在本實(shí)施例中,目標(biāo)藍(lán)牙設(shè)備返回配對(duì)信息后,還包括:將配對(duì)信息顯示給用戶,即將6字節(jié)的pin碼顯示給用戶,當(dāng)接收到來自用戶的確認(rèn)鍵按鍵信息時(shí),將計(jì)算得到的配對(duì)信息保存,并顯示保存的移動(dòng)設(shè)備的設(shè)備名稱和設(shè)備品牌。

      例如,在本實(shí)施例中,認(rèn)證成功信息為ok;6字節(jié)的pin碼為564823;錯(cuò)誤碼為false。

      步驟313:接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如設(shè)備認(rèn)證結(jié)果為認(rèn)證成功,則執(zhí)行步驟317;如設(shè)備認(rèn)證結(jié)果為配對(duì)信息,則執(zhí)行步驟314;如設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼,則斷開連接,結(jié)束;

      具體地,接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果,如接收到的設(shè)備認(rèn)證結(jié)果為ok,則執(zhí)行步驟317;如接收到的設(shè)備認(rèn)證結(jié)果為6字節(jié)的pin碼564823,則執(zhí)行步驟314;如接收到的設(shè)備認(rèn)證結(jié)果為false,則結(jié)束。

      步驟314:通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的配對(duì)信息給用戶;

      具體地,通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的pin碼給用戶;

      進(jìn)一步地,在本實(shí)施例中,通過移動(dòng)設(shè)備顯示目標(biāo)藍(lán)牙設(shè)備返回的pin碼給用戶之后,用戶比對(duì)移動(dòng)設(shè)備顯示的pin碼與目標(biāo)藍(lán)牙設(shè)備顯示的pin碼是否相同,是則按下目標(biāo)藍(lán)牙設(shè)備上的確認(rèn)鍵,否則按下目標(biāo)藍(lán)牙設(shè)備上的取消鍵。

      步驟315:獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,判斷是否獲取到確認(rèn)鍵被按下的狀態(tài)信息,是則執(zhí)行步驟317,否則執(zhí)行步驟316;

      具體地,向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取按鍵狀態(tài)指令來獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息,并判斷是否獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的狀態(tài)信息,是則判定配對(duì)成功,執(zhí)行步驟317;否則判定配對(duì)未成功,執(zhí)行步驟316。

      需要說明地,在本實(shí)施例中,藍(lán)牙設(shè)備根據(jù)與移動(dòng)設(shè)備配對(duì)的先后順序,依次保存對(duì)應(yīng)的配對(duì)信息,且保存的配對(duì)信息的個(gè)數(shù)有限,當(dāng)藍(lán)牙設(shè)備保存的配對(duì)信息的個(gè)數(shù)達(dá)到最大值時(shí),則將最先保存的配對(duì)信息移除,并將本次配對(duì)成功的配對(duì)信息保存。

      步驟316:判斷是否超時(shí),是則斷開連接,結(jié)束;否則返回步驟315;

      優(yōu)選地,在本實(shí)施例中,超時(shí)時(shí)間為60秒。

      步驟317:配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備進(jìn)行數(shù)據(jù)通訊,結(jié)束。

      實(shí)施例四

      本發(fā)明實(shí)施例四提供一種與藍(lán)牙設(shè)備的配對(duì)裝置,如圖4所示,包括:

      掃描連接模塊401,用于掃描移動(dòng)設(shè)備周圍的藍(lán)牙設(shè)備,從中選擇目標(biāo)藍(lán)牙設(shè)備,連接目標(biāo)藍(lán)牙設(shè)備;

      第一獲取模塊402,用于獲取移動(dòng)設(shè)備的第一設(shè)備信息;

      第二獲取模塊403,用于獲取目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      第一生成模塊404,用于根據(jù)第一獲取模塊402獲取到的第一設(shè)備信息和第二獲取模塊403獲取到的第二設(shè)備信息生成第一設(shè)備認(rèn)證信息;

      發(fā)送模塊405,用于發(fā)送第一生成模塊404生成的第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備;

      接收模塊406,用于在發(fā)送模塊405發(fā)送第一生成模塊404生成的第一設(shè)備認(rèn)證信息給目標(biāo)藍(lán)牙設(shè)備之后,接收目標(biāo)藍(lán)牙設(shè)備返回的設(shè)備認(rèn)證結(jié)果;

      顯示模塊407,用于當(dāng)接收模塊406接收到的設(shè)備認(rèn)證結(jié)果為配對(duì)信息時(shí),通過移動(dòng)設(shè)備顯示配對(duì)信息;

      第三獲取模塊408,用于在顯示模塊407通過移動(dòng)設(shè)備顯示配對(duì)信息之后,獲取目標(biāo)藍(lán)牙設(shè)備的按鍵狀態(tài)信息;

      通訊模塊409,用于當(dāng)?shù)谌@取模塊408獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下時(shí),判定配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備通信;還用于當(dāng)接收模塊406接收到的設(shè)備認(rèn)證結(jié)果為認(rèn)證成功時(shí),判定配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備通信;

      斷開模塊410,用于當(dāng)接收模塊406接收到的設(shè)備認(rèn)證結(jié)果為錯(cuò)誤碼時(shí),斷開連接。

      本實(shí)施例中的裝置,還包括:第一判斷模塊和綁定模塊;

      其中,第一判斷模塊,用于判斷移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備是否已綁定;

      第一獲取模塊402,具體用于:當(dāng)?shù)谝慌袛嗄K判斷出移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備已綁定時(shí),獲取移動(dòng)設(shè)備的第一設(shè)備信息;

      綁定模塊,用于當(dāng)?shù)谝慌袛嗄K判斷出移動(dòng)設(shè)備與目標(biāo)藍(lán)牙設(shè)備未綁定時(shí),與目標(biāo)藍(lán)牙設(shè)備綁定;

      第一獲取模塊402,還用于在綁定模塊與目標(biāo)藍(lán)牙設(shè)備綁定之后,獲取移動(dòng)設(shè)備的第一設(shè)備信息。

      可選地,在本實(shí)施例中,所述第一獲取模塊402,具體用于:獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符,將獲取到的設(shè)備標(biāo)識(shí)符轉(zhuǎn)換為第一預(yù)設(shè)格式后作為第一設(shè)備信息。

      對(duì)應(yīng)地,本實(shí)施例中的裝置還包括:第二判斷模塊和第二生成模塊;

      其中,第二判斷模塊,用于判斷移動(dòng)設(shè)備中是否存有設(shè)備標(biāo)識(shí)符;

      第一獲取模塊402,具體用于:當(dāng)?shù)诙袛嗄K判斷出移動(dòng)設(shè)備中存有設(shè)備標(biāo)識(shí)符時(shí),獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符;

      第二生成模塊,用于當(dāng)?shù)诙袛嗄K判斷出移動(dòng)設(shè)備中不存有設(shè)備標(biāo)識(shí)符時(shí),生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中;

      第一獲取模塊402,還用于在第二生成模塊生成設(shè)備標(biāo)識(shí)符并保存至移動(dòng)設(shè)備中之后,獲取移動(dòng)設(shè)備中存有的設(shè)備標(biāo)識(shí)符。

      可選地,在本實(shí)施例中,第一獲取模塊402,具體用于:獲取移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí)或者系統(tǒng)標(biāo)識(shí)或者設(shè)備序列號(hào)。

      對(duì)應(yīng)地,第一獲取模塊402,具體包括:第一作為單元、獲取單元、第一判斷單元、第二作為單元、移除單元和第二判斷單元;

      其中,第一作為單元,用于將設(shè)備標(biāo)識(shí)、系統(tǒng)標(biāo)識(shí)和設(shè)備序列號(hào)作為當(dāng)前待獲取設(shè)備信息;

      獲取單元,用于獲取當(dāng)前待獲取設(shè)備信息中的其中一個(gè);

      第一判斷單元,用于判斷獲取單元是否獲取成功;

      第二作為單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑霁@取單元獲取成功時(shí),將獲取單元獲取到設(shè)備信息作為移動(dòng)設(shè)備的第一設(shè)備信息;

      第二獲取模塊403,具體用于:在第二作為單元將獲取單元獲取到設(shè)備信息作為移動(dòng)設(shè)備的第一設(shè)備信息之后,獲取目標(biāo)藍(lán)牙設(shè)備的第二設(shè)備信息;

      移除單元,用于當(dāng)?shù)谝慌袛鄦卧袛喑霁@取單元未獲取成功時(shí),將獲取單元獲取到的設(shè)備信息從當(dāng)前待獲取設(shè)備信息中移除;

      第二判斷單元,用于在移除單元將獲取單元獲取到的設(shè)備信息從當(dāng)前待獲取設(shè)備信息中移除之后,判斷是否還有待獲取設(shè)備信息;

      第一作為單元,還用于在第二判斷單元判斷出還有待獲取設(shè)備信息時(shí),將待獲取設(shè)備信息作為當(dāng)前待獲取設(shè)備信息;

      斷開模塊410,還用于當(dāng)?shù)诙袛鄦卧袛喑鰶]有待獲取設(shè)備信息時(shí),斷開連接。

      在本實(shí)施例中,所述第二獲取模塊,具體用于:向目標(biāo)藍(lán)牙設(shè)備發(fā)送獲取第二設(shè)備信息指令,并接收目標(biāo)藍(lán)牙設(shè)備返回的第二設(shè)備信息;第二設(shè)備信息包括mac地址和長(zhǎng)期密鑰。

      在本實(shí)施例中,第一生成模塊404,具體用于:根據(jù)第一設(shè)備信息、第二設(shè)備信息及預(yù)置的廠商信息生成第二預(yù)設(shè)格式的第一設(shè)備認(rèn)證信息。

      本實(shí)施例中的裝置,還包括:第三判斷模塊;

      第三判斷模塊,用于判斷第三獲取模塊408在預(yù)設(shè)時(shí)間內(nèi)是否獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息;

      對(duì)應(yīng)地,通訊模塊409,具體用于:當(dāng)?shù)谌袛嗄K判斷出第三獲取模塊408在預(yù)設(shè)時(shí)間內(nèi)獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息時(shí),判定配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備通信;還用于當(dāng)接收模塊406接收到的設(shè)備認(rèn)證結(jié)果為認(rèn)證成功時(shí),判定配對(duì)成功,與目標(biāo)藍(lán)牙設(shè)備通信;

      斷開模塊410,還用于當(dāng)?shù)谌袛嗄K判斷出第三獲取模塊408在預(yù)設(shè)時(shí)間內(nèi)未獲取到目標(biāo)藍(lán)牙設(shè)備的確認(rèn)鍵被按下的按鍵信息時(shí),斷開連接。

      本實(shí)施例中的裝置,還包括:協(xié)商模塊;

      協(xié)商模塊,用于與目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰;

      對(duì)應(yīng)地,第一獲取模塊402,具體用于:在協(xié)商模塊與目標(biāo)藍(lán)牙設(shè)備協(xié)商會(huì)話密鑰之后,獲取移動(dòng)設(shè)備的第一設(shè)備信息;

      發(fā)送模塊405,具體用于:使用協(xié)商模塊協(xié)商的會(huì)話密鑰對(duì)第一設(shè)備認(rèn)證信息加密得到第一設(shè)備認(rèn)證信息密文,發(fā)送第一設(shè)備認(rèn)證信息密文給目標(biāo)藍(lán)牙設(shè)備。

      本實(shí)施例中的裝置,還包括:第四獲取模塊;

      第四獲取模塊,用于獲取移動(dòng)設(shè)備的附加信息;

      對(duì)應(yīng)地,發(fā)送模塊405,還用于將第四獲取模塊獲取到的附加信息發(fā)送給目標(biāo)藍(lán)牙設(shè)備。

      本發(fā)明中,在移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信時(shí),在移動(dòng)設(shè)備端生成含有設(shè)備信息的設(shè)備認(rèn)證信息并發(fā)送給藍(lán)牙設(shè)備供藍(lán)牙設(shè)備認(rèn)證移動(dòng)設(shè)備,且在首次配對(duì)時(shí)需要用戶參與按鍵確認(rèn)來完成配對(duì)過程,不僅實(shí)現(xiàn)了防重放攻擊,又縮短了移動(dòng)設(shè)備與藍(lán)牙設(shè)備建立通信的時(shí)間,提升了用戶體驗(yàn)。

      以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1