前言
本文是一些解決 BLE 廣播相關問題的經(jīng)驗分享。對于用戶常常遇到的一些問題,比如廣播包最多能帶多少用戶數(shù)據(jù),廣播名字怎么設置,廣播類型有哪些,為什么有些手機無法掃描到設備等問題,都將在本文得到解答。
BLE 廣播最基礎知識
隨著 BLE 核心規(guī)范版本的更新,藍牙廣播增加了很多特性,如擴展廣播,同步廣播等。本文不對這些特性做展開,僅討論傳統(tǒng)廣播的一些比較基礎的知識。
手機找不到設備的普通廣播?
用戶使用手機的系統(tǒng)藍牙掃描周圍設備時,系統(tǒng)藍牙可以掃出一些設備,但自己的設備卻沒有掃描到?
先一句話概括:可能和手機的系統(tǒng)藍牙的過濾機制有關。
手機找不到設備的 Beacon 廣播?
這個問題和找不到設備的普通廣播的原因類似,可以先一句話概括:可能和手機系統(tǒng)藍牙的過濾機制有關。解決的辦法是找到一個可以掃描 Beacon 廣播包的 APP,比如LightBlue 等。
廣播名顯示異常
這個問題有以下幾個場景:
- 使用 iOS 手機掃描設備,掃到“a”名字的設備,而當連接、斷連一次該設備后,再次掃描,掃到了“b”名字的同一個設備。
一句話解答這個問題是:iOS 手機遵循完整的設備名掃描機制,并且會保留已連接設備的信息。
小結
在開發(fā)過程中遇到和藍牙廣播相關的問題時,基于本人的經(jīng)驗可按下以下步驟進行逐一排查:
- 確認系統(tǒng)正確發(fā)出廣播,可通過 LOG 信息和電流波形確認;
- 工程師在開發(fā)過程中修改藍牙外設固件時,最好使用 Public 地址類型并且每次下載固件前都改一下藍牙地址;
- 了解藍牙的廣播類型,有一些手機 APP 無法掃描 Beacon 類設備,建議使用STBLE Toolbox 工具或者 LightBlue 工具對設備進行掃描;
- 注意手機的系統(tǒng)藍牙有過濾機制,本文檔的第三章提及的解決方式,不能百分百逃過手機的過濾機制。當遇到有的手機無法掃描自己的 BLE 外設時,我們可以利用該手機系統(tǒng)藍牙已掃出的設備,對其廣播包進行解析,找出其被該手機識別的廣播字段依據(jù)。
閱讀全文