android - 连接到具有最佳 rssi 的蓝牙设备
问题描述
我希望我的 android 设备选择范围内具有最佳 RSSI 的 BT 设备并连接到它。有没有办法实现这样的事情?
例如:我家周围有 5 个基于 ESP32 的设备,需要我的手机重新连接到最近的设备(具有最强的 RSSI)。有没有办法让应用程序自动从可用设备列表中选择最佳 RSSI,终止先前的连接并重新连接到具有最佳 RSSI 的设备?
非常感谢您的帮助。谢谢。
解决方案
是的,这绝对是可行的。您的应用程序需要做的就是:-
- 以特定间隔(例如 5 秒)扫描设备。
- 根据名称过滤扫描的设备(即您要确保您只有 ESP32 设备而不是其他随机蓝牙设备)。
- 找到具有最佳 RSSI 的设备。
- 连接到具有最佳 RSSI 的设备。
- 如果您希望该过程是连续的,请返回步骤 1。
但是,请记住,RSSI 并不总是等同于距离/范围。具有最佳 RSSI 的设备实际上可能比其他设备更远。下面的链接涵盖了这一点以及您的应用程序可能需要的一些其他有用数据:-
推荐阅读
- regex - 正则表达式表达以隐藏子名称
- r - 将 prop.test 应用于数据框中的每一行
- java - 如何在 Rxjava 中链接 Singles
- flask - Flask 分页 - 过滤器 - 搜索选项 - 请需要支持
- javascript - 如何将 AJAX 发布响应加载到本身已加载 AJAX 的 div 中?
- python - 当我重新单击 Python tkinter 应用程序中的执行按钮时如何清除输出
- ruby-on-rails - 如何在嵌套表单中接受数组参数?
- python - Python:循环数据时继续通过“RuntimeError”
- reactjs - 引导表获取数据的速度不够快
- vlang - 我可以在 Mac OS 中安装 vlang 吗?