1. 蓝牙广播机制基础解析
在Android蓝牙开发中,广播(Advertising)是BLE(低功耗蓝牙)设备向外发送数据包的核心机制。这种单向通信方式允许设备在不建立连接的情况下,向周围设备宣告自己的存在和特性。广播机制在智能家居信标、位置服务、设备发现等场景中发挥着关键作用。
Android系统从5.0(API 21)开始提供完整的BLE广播API支持,并在后续版本中不断强化功能。广播数据包遵循特定的格式规范,包含报头(Header)和有效载荷(Payload)两部分。报头指明广播类型(可连接、可扫描等),而有效载荷最多可携带31字节的自定义数据,通常包含设备名称、服务UUID、制造商特定数据等信息。
广播工作模式主要分为两种:
- 通用广播(General Discoverable):最常见的广播模式,所有BLE设备都能接收
- 定向广播(Directed Discoverable):针对特定设备的快速连接建立
在Android开发实践中,广播功能主要通过BluetoothLeAdvertiser类实现,而startAdvertising()和startAdvertisingSet()则是其核心方法。
2. startAdvertising方法深度剖析
startAdvertising()是Android 5.0引入的基础广播API,其方法签名如下:
java复制public void startAdvertising(
AdvertiseSettings settings,
AdvertiseData advertiseData,
AdvertiseCallback callback
)
2.1 参数配置详解
AdvertiseSettings控制广播的行为参数:
java复制AdvertiseSettings.Builder()
.setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY)
.setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH)
.setConnectable(true)
.setTimeout(0) // 0表示无超时
.build()
关键参数说明:
-
AdvertiseMode:广播间隔模式
- LOW_LATENCY(100ms间隔):快速发现但高耗电
- BALANCED(250ms间隔):平衡模式
- LOW_POWER(1s间隔):最省电但发现延迟高
-
TxPowerLevel:发射功率
- ULTRA_LOW:极低功率(约-21dBm)
- LOW:低功率(约-15dBm)
- MEDIUM:中等功率(约-
