android - BLE 5 外围设备未在支持 BLE 5 的 Android 手机和 iPhone 上得到扫描
问题描述
我正在开发一个需要与支持 BLE 5 的外围设备通信的应用程序,这是我们使用扩展广告包的要求。众所周知,BLE 5 设备完全支持后台兼容。因此,当 BLE 5 设备在传统模式下广播自身时,它会在 Andorid/iPhone 设备上进行扫描。但是,当它在没有传统模式的情况下广播时,它不会被扫描。我不知道我错过了什么。我相信在应用程序方面没有什么比在堆栈级别处理更多的事情要做的了。
任何帮助将不胜感激。提前致谢。
解决方案
请检查以下几点:
- 拿一个蓝牙嗅探器。你的设备有广告吗?
- 广告间隔是多少?它与手机兼容吗?如果间隔不好,则可能存在混叠问题。一个很好的起点,从 Apple开始配件设计指南。如果 inverval 长于 500 毫秒,则可能需要很长时间才能找到设备。
- 向您发送什么样的广告?有向/无向?如果您直接发送,非目标设备的堆栈将忽略广告
- 如果您有一个好的 BLE 扫描仪,它也可能会显示广告数据是否格式错误。我曾经遇到过我的所有广告都被忽略的问题,因为长度字段与有效负载不匹配。
- 您期望公共或随机 BLE 地址吗?我不确定这一点,但可以过滤或过滤。因此,如果您的设备切换到随机地址并且您只过滤公共地址,您可能看不到它。
我希望对于任何有同样问题的人来说,这是一个良好的调试开始。
推荐阅读
- c++ - 线程执行期间 C++ 容器的性能
- electron - 在主任务栏上显示 Electron Windows 托盘图标,而不是在显示隐藏图标下
- javascript - 将元素定位在包含元素之外
- python-3.x - 导入 salem 导致错误 1“libgrass_dgl”和“libgrass_vector”:无法打开共享对象文件:没有这样的文件或目录
- javascript - 转换为 TypeScript 后 Redux 操作不再起作用
- react-native - 使用 ref 的 setAccessibilityFocus 不起作用
- azure - Azure AD 多租户应用程序 - Azure 资源管理 API - 获取使用租户列表 API 获得的所有租户的订阅列表
- python - 使用 pandas 展平嵌套 JSON 并连接到数据框
- vba - MS-Access:数据更新后如何刷新表单?
- karate - 无法在空手道中获取 json 数组长度