CSR867x — 如何修改藍牙設備名稱

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XX  作       者:ZHS(文化人)

XX  聯繫方式:文章末尾Chat快問(或進羣:471144274

XX  版權聲明:原創文章,歡迎評論和轉載~轉載時能告訴我一聲就最好了

XX  要說的話:作者水平有限,難免有不足之處,懇請指正!

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

寫在前面:最近有很多人問到,CSR的ADK中如何修改藍牙設備名稱,這裏我針對平時的操作做個簡單總結;

問:把大象放冰箱需要幾步?答:3步。

對的,我們這裏修改藍牙設備名稱,也是需要3步:

1、調用lib庫中connection接口,通過HCI指令修改底層協議棧的藍牙名稱:

ConnectionChangeLocalName(nameLength, nameData);

2、使用PSkey存儲該設備名稱,下次開機只需從PSkey讀取即可:

memcpy(at_buff, nameData, nameLength);

PsStore(PS_DEVICE_NAME, at_buff, nameLength);

3、修改EirData,使BR/EDR的藍牙廣播名稱立即改變:

AppWriteEirData();

       

經過上面3步,傳統藍牙(BR/EDR)的廣播名稱已經變成了修改之後的,但是低功耗藍牙(BLE)的廣播名稱不會發生變化,需要復位後纔會改變。

 

    BLE開機廣播過程:

    1)BLE廣播時,先讀取本地設備名稱:

    sinkBleGapStartReadLocalName(ble_gap_read_name_advertising);

      

    2)協議棧處理之後會上報事件CL_DM_LOCAL_NAME_COMPLETE:

         

    3)設置BLE廣播名稱:

       

如果遇到修改之後BLE的廣播名稱沒有變化的情況,請點擊這篇博客,或許有你要的答案。這裏是把BR/EDR和BLE設置爲相同的名稱,當然也可以設置爲不同,但是在安卓端,名稱不同時會跳變,意義不大,況且通過藍牙圖標也是能夠進行區分的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章