我正在开发一个应用程序,该应用程序需要与BLE 5供电的外围设备通信,这是我们使用扩展广告数据包的要求。正如我们所知,BLE5设备完全支持后台兼容性。因此,当BLE 5设备在传统模式下进行广播时,它会在Andorid/iPhone设备上进行扫描。但当它在没有传统模式的情况下进行广播时,它不会被扫描。我不知道我错过了什么。我相信在应用程序端没有什么比在堆栈级别处理更重要的了。
如有任何帮助,我们将不胜感激。提前谢谢。
请检查以下几点:
- 带上蓝牙嗅探器。你的设备在做广告吗
- 广告间隔是多少?它与手机兼容吗?如果间隔不好,可能会出现混叠问题。这是一个很好的起点,可以从苹果的配件设计指南开始。如果inverval的时间超过,比方说500毫秒,可能需要很长时间才能找到设备
- 你要发什么样的广告?定向的/非定向的?如果你直接发送,非targed设备的堆栈将忽略广告
- 如果你有一个好的BLE扫描仪,它可能还会显示广告数据是否格式错误。我曾经遇到过这样的问题,我所有的广告都被忽略了,因为长度字段与有效载荷不匹配
- 您希望使用公共地址还是随机BLE地址?我不确定这一点,但可能会筛选出或。所以,如果你的设备切换到随机地址,并且只过滤公共地址,你可能看不到它
我希望这是调试任何有相同问题的人的一个良好开端。