在 Android 上:我想通过蓝牙 LE 进行广告并提供可用的扫描响应。据我了解,扫描响应的格式与广告相同。
那么扫描仪如何识别我的扫描响应?它如何区分我的扫描响应和其他设备的广告?在实践中:我的扫描响应是否需要有一些识别信息将其与原始广告联系起来?我没有在任何文档中看到任何提及这一点的内容。
我查看了一些图表,我唯一的猜测是扫描响应总是在请求扫描响应之后恰好 X 毫秒到来。这样,就不需要任何将响应与原始广告联系起来的信息。虽然看起来很粗略。
最佳答案
我假设您问的是有关非扩展广告的问题。
参见Spec ,见第 6.B.2.3 章。然后:
- 广告数据包 (ADV_IND) 包含广告商 48 位蓝牙地址 (AdvA) 和广告数据 (AdvData)。
- 扫描请求数据包 (SCAN_REQ) 包含扫描器 48 位蓝牙地址 (ScanA) 和目标广告商 48 位蓝牙地址 (AdvA)。
- 扫描响应数据包 (SCAN_RSP) 包含广告商 48 位蓝牙地址 (AdvA) 和扫描响应数据 (ScanRspData)。
AdvData 和 ScanRspData 具有相同的格式,但不应重复相同的内容。他们应该加起来。是否将给定的广告数据(AD)放入广告或扫描响应中是广告数据包的最大长度和扫描延迟之间的优化权衡问题。
某些 AD 类型对其出现位置有限制,请参阅 Core Specification Supplement了解更多信息。
关于android - 低功耗蓝牙 : when scanning for advertisements, 如何识别扫描响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564948/