1. 蓝牙Inquiry过程核心概念解析
在蓝牙设备间建立连接的第一步,就是让彼此"知道对方的存在"——这正是Inquiry(查询)过程的核心作用。想象你走进一个满是陌生人的房间,想要找到特定类型的朋友。你会先大声喊一句"这里有摄影师吗?",然后等待回应。蓝牙设备的Inquiry过程与此类似,只不过它们用的是无线电波而非声波。
1.1 双视角分析框架
要真正掌握Inquiry的运作机制,必须同时关注两个维度:
-
HCI视角:就像公司里经理与工程师的沟通。经理(主机)下达指令(HCI命令),工程师(蓝牙控制器)执行并反馈结果(HCI事件)。我们通过分析他们的对话记录(Snoop日志),就能理解高层决策与底层执行的对应关系。
-
空口视角:相当于观察房间内人们实际的对话内容。通过监听无线电波(airlog),我们可以看到设备之间具体交换了哪些信息包,以及这些包的时序、频率等物理层细节。
1.2 关键术语与参数
-
LAP(低地址部分):相当于蓝牙设备的"姓氏"。通用查询使用固定值9E:8B:33,就像喊"所有姓张的人请回答";专用查询则使用特定设备的LAP,相当于点名呼叫。
-
Inquiry Length:查询持续时间,单位是1.28秒的倍数。就像你等待回应的时长——太短可能漏掉反应慢的人,太长又浪费电量。
-
Num_Responses:允许的最大响应数量。好比限定"只接受前5个人的回应",防止被过多设备淹没。
提示:通用查询时,大多数蓝牙设备会将自己的设备类型、名称等基本信息放在扩展查询响应(EIR)中返回,这是识别设备特性的重要依据。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Inquiry发起阶段深度拆解
2.1 HCI命令下发与状态反馈
当手机蓝牙设置界面点击"扫描设备"时,系统会触发以下HCI指令流:
bash复制// 主机发送查询命令
HCI_Extended_Inquiry_Command(
Inquiry_Length = 0x30, // 约8秒(0x30*1.28s)
Num_Responses = 0x00, // 不限制响应数量
LAP = 0x9E8B33 // 通用查询LAP
)
// 控制器确认收到命令
HCI_Comman
