写在前面:最近有很多人问到,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设置为相同的名称,当然也可以设置为不同,但是在安卓端,名称不同时会跳变,意义不大,况且通过蓝牙图标也是能够进行区分的。 来源:https://blog.csdn.net/zhanghuaishu0/article/details/88077624 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2025-4-30 23:04 , Processed in 0.114072 second(s), 19 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.