问题描述
我们正在开展一项研究项目,该项目需要使用 iBeacon 协议主动扫描 BLE 信标广告。我的印象是,iOS 和 Android 上的 BLE 扫描发生在多个时期(iPhone 上的 1 个时期需要 1.28 秒?)。设备扫描所有蓝牙通道一段时间,然后进入空闲状态一段时间。
我找不到任何特定于不同手机型号的在线文档,说明它们主动扫描多长时间以及空闲期持续多长时间。任何人都可以帮助提供高端手机的这些信息,但不是最新和最好的。比如说 iPhone 10、三星 galaxy S10、Pixel 3XL 等
非常感谢任何信息。
解决方法
您可以使用开发人员选项来获取 hci 日志,该日志记录了与蓝牙芯片之间发送和发送的所有通信。在那里你会发现主机操作系统设置的扫描间隔和扫描窗口。
然而,蓝牙固件只会将此视为建议,并且在现实中可能会使用其他值,例如,如果无线电必须优先用于 Wi-Fi 通信或处理 BLE 连接。由于固件通常是闭源的,我们不知道它是如何工作的。
您可以做的是以非常低的广告间隔从某个来源传输广告数据包,然后在手机上运行扫描并尝试通过分析何时观察到数据包以及何时丢失数据包来找出扫描参数。