測試藍牙回連技術


  最近我們公司的語音遙控器的項目就快要進入尾聲了,還需要優化一下藍牙回連這塊的技術。先來看看需求:

  iOS 端:

  1、當設備開機時,嘗試回連最后一次連接過的設備 A2DP(多個設備的情況下優先連接最后連接的設備);

  2、連接上 A2DP 后,掃描設備 BLE 連接設備 BLE(在當前打開應用或者應用在后台打開情況下);

  Android

  第一種情況:
  1、當設備開機時,嘗試回連最后一次連接過的設備 A2DP(多個設備的情況下優先連接最后連接的設備);
  2、連接上 A2DP 后,App 拿到藍牙對象,去連接 SPP (在當前打開應用或者應用在后台打開情況下);

  第二種情況:
  1、手機“設置”自動回連上一次最新的 A2DP 連接;
  2、連接上 A2DP 后,App 拿到藍牙對象,去連接 SPP (在當前打開應用或者應用在后台打開情況下);

  第三種情況:
  進入 App 之后,如果原來本地保存的連接數據顯示有最后的一次連接的設備,就嘗試自動連接這個設備(A2DP + SPP一起連接 )。

 

  回連邏輯 (BLE遙控器)
  iOS/Android
  第一種情況
  iOS/Android
  被動斷開情況下,會一直去自動掃描,掃到為止。

  第二種情況
  打開應用,會檢測到上次保存的最新的一次 BLE 自動回連

  特殊情況
  當 App 最后一次連接 BLE 設備,退出之后,在系統設置頁面連接音箱(某些手機可以連接一個或者多個),再次進入的時候,回連 BLE 然后會回連 2819 音箱,這個時候我們允許 2819 音箱和 BLE 共存。某些手機存在可以連接多個音箱(過濾是否是我們的產品)的情況,默認回連第一個。  

  為了用戶的方便使用,現在的連接藍牙的應用和設備大部分都做了回連的處理。比如你的藍牙耳機,當它關機之后,就會和你的手機斷開,重新開機時,又會自動和你的藍牙進行連接。這里就做了回連的技術處理。今天我要寫的就是這塊的總結和邏輯處理。

  藍牙版本

  • 藍牙4.0:也叫BLE(Bluetooth low energy),特點是功耗低,傳輸速率也較低。但絕對可以滿足市場上的大部分智能穿戴產品了,是目前iOS藍牙開發的主流。從iPhone4s開始支持。使用CoreBluetooth進行開發
  • 藍牙3.0:硬件需要獲得MFi認證才能配合iOS設備使用,使用ExternalAccessory框架進行開發。 因為硬件有要求,一般的藍牙外設都不會選擇3.0,除了涉及高質量音頻傳輸的,比如耳機。

  目前我們采用的是藍牙 4.0 版本。當一個設備因為沒電關機,或者自動關機的情況會與 BLE 斷開,當再次開機的時候,他會與最后一次設備自動進行連接,不需要走配對的過程,叫做藍牙回連。

  在測試過程中,我們需要注意一下幾個場景:

  1 設備被強制關機或者是斷電關機

  2 設備和手機距離太遠斷開

  3 只是斷開 A2DP 的情況

  4 應用被結束進程

  設備要是被強制關機了或者是斷電關機了,開機之后,應用如果沒有關閉是需要自動回連的。系統的 A2DP 會自動回連,iOS 出現過音源輸出選擇的 bug,A2DP 已經連接,但是聲音是默認從 iPhone 中出聲,這個問題目前還沒有解決。

  設備和手機距離太遠斷開,這里有可能會回連失敗,因為硬件如果設置掃描幾次就不再發起回連,應用也就沒辦法回連成功了。

  只是斷開 A2DP 的情況下,BLE 還是在連接狀態,可以正常調起應用,但是不能讓聲音從設備端出來。這一點目前也沒有辦法修改,這是蘋果系統設定。

  應用被結束了進程,手機系統的藍牙是在連接狀態的,但是應用內 BLE 卻已經斷開了。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM