蓝牙设备名称长度受限于蓝牙广播数据包的长度
,如果广播数据包的长度不能包含完整的设备名称,则只显示短名称,其余不能容纳的部分将被截断。- ESP32-C3 支持 BLE5.0,最大广播包长支持
1650
字节,可通过 esp_ble_gap_config_ext_adv_data_raw 函数来设置。 - 可以基于 esp-idf v5.0 版本的 SDK 中的 esp-idf/examples/bluetooth/bluedroid/ble_50/ble50_security_server 例程来测试扩展蓝牙名称的长度。修改如下广播包的 name 长度和对应
长度
的 name字符个数
即可:
其中
0x11
表示后面所有字符长度;0x09
代表数据类型(固定),"E","S","P",...........
则表示设备名称对应的字符。
测试说明如下:
- 将 0x11 改为 0x37 ,即测试蓝牙名称为 54 字节的长度
- 填充 54 个字节的蓝牙名称字符
测试结果如下:
说明:
- 如果使用的是 ESP32 ,则仅支持 BLE4.2 ,BLE4.2 的广播数据包长受限为 31 字节,可基于 esp-idf v4.2 版本的 ble server 例程来进行测试。可在 menuconfig 中查看 BLE4.2 设备名称长度的限制说明,如下: