本文適用範圍
ADK22.3~
問題/功能描述
如何實時更改本地藍牙名字
實現方案
在客戶產品配套手機app時,會人性化的提供藍牙名的修改功能,這就需要耳機端提供相應的接口工調用.
以下是實現該功能的簡單的實現步驟
演示環境
- QCC3083開發板
- 使用工程ADK-23.3-MR-r00784.1 0.0.784.1 headset
實現過程
與以往修改方式,本方法主要藉助ADK提供的新接口來實現本地名稱的更改,無須修改太多代碼,破壞原生流程。
懂得多不想看的同學看到這裡可以結束了。
記住可以直接使用API接口CmSetLocalNameReqSend就可實現藍牙名的修改。
具體調用位置和方法可以參考以下示例說明.
當手機應用端發起藍牙名修改請求後,耳機端接受數據並解析後,將其交由函數write name處理.首先保存到usrkey,然後調用reset name執行更新請求.
當底層返回確認信息CSR_BT_CM_SET_LOCAL_NAME_CFM時,如果執行成功,系統會重新獲取藍牙名並更新到全局變量中,以供其他模塊使用.
這樣看起來是不是很簡單,作為演示已經達成目標.若用到產品中使用,還需要進一步完善.諸如名字的長度,編碼等是需要符合藍牙規範要求.更新後還需對遠端設備進行反饋.
常見問題解答
- 修改時如何實現實時生效的?
[A]在修改成功後,默認需要重新更新廣播數據包,這是通過執行一次ScanManager_ConfigureEirData實現的.
- 修改對Bredr和LE廣播都有效果嗎?
[A]是的,修改會作用於兩種模式的廣播
- 修改時臨時還是永久性的修改?
[A]修改是半永久性,當恢復裝置操作後,名字會變為默認名
- 如何實現永久修改?
[A]如文章方式在修改時將名字保存到mibkey中,每次開機時讀取並判斷是否需要更新操作.
5.有沒有官方文檔介紹說明?
[A]可以參考文檔80_13827_1,80-34461-1
評論
yaming
2 個月前