BLE中Broadcaster与Beacon的区别是什么?
首先明确核心关系:Beacon是基于Broadcaster角色实现的一类具体应用场景,二者是「通用角色」和「特定应用实例」的关系,具体区别如下:
定义层级不同
Broadcaster是蓝牙核心规范中GAP(Generic Access Profile)层定义的4种基础角色之一,属于蓝牙协议栈的官方标准角色,仅规定设备的广播行为(持续发送广播包、不接受连接请求),不对广播内容做限制。
Beacon则是基于Broadcaster角色衍生出的应用层规范,比如iBeacon、Eddystone都是具体的Beacon标准,它们明确了广播包的具体格式、数据结构(如UUID、Major/Minor值、信号强度校准值等)。功能定位不同
Broadcaster的定位是通用广播发送者,可发送任意符合蓝牙规范的广播数据,用途灵活——比如传递传感器数据、设备状态信息等,只要接收端(Observer角色)能解析即可。
Beacon的定位是「位置标识/信标」,核心作用是让附近设备识别自身存在并获取预设标识信息,通常用于室内定位、近距离提醒(如商场推送优惠)等场景,广播内容严格遵循对应Beacon标准。实现约束不同
只要设备满足GAP中Broadcaster角色的行为要求(只发广播、不响应连接),即可被称为Broadcaster设备,无额外格式约束。
而设备要被称为Beacon,必须严格遵循某一种Beacon规范的广播格式,比如iBeacon要求广播包的Manufacturer Data字段包含特定苹果公司ID、UUID、Major/Minor和校准RSSI值,不符合该格式的Broadcaster设备不能称为Beacon。
内容的提问来源于stack exchange,提问作者im narwhal

