android - 连接到具有最佳 RSSI 的蓝牙设备

标签 android bluetooth bluetooth-lowenergy esp32 rssi

我希望我的 Android 设备选择范围内具有最佳 RSSI 的 BT 设备并连接到它。有没有办法实现这样的事情?

例如:我家里有 5 个基于 ESP32 的设备,需要我的手机重新连接到最近的设备(RSSI 最强)。有没有办法让应用程序自动从可用设备列表中选择最佳 RSSI,终止之前的连接并重新连接到具有最佳 RSSI 的设备?

非常感谢您的帮助。谢谢。

最佳答案

是的,这绝对是可行的。您的应用程序需要执行的操作如下:-

  1. 在特定时间间隔(例如 5 秒)内扫描设备。
  2. 根据名称过滤扫描到的设备(即您要确保只有 ESP32 设备,而不是其他随机蓝牙设备)。
  3. 查找 RSSI 最佳的设备。
  4. 连接到具有最佳 RSSI 的设备。
  5. 如果您希望该过程连续进行,请返回步骤 1。

但是,请记住,RSSI 并不总是等同于距离/范围。具有最佳 RSSI 的设备实际上可能比其他设备更远。下面的链接介绍了这一点以及您的应用程序可能需要的其他一些有用数据:-

关于android - 连接到具有最佳 RSSI 的蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67155887/

相关文章:

android - 如何在 Android 中请求启用 GPS 的权限

android - 为什么android GridView项目里面的按钮无法点击?

python - 如何在 Windows 8.1 上安装 PyBluez?

bluetooth - PlatformException 试图读取 flutter 蓝色上的特性

ios - iOS7 设备可以充当 iBeacon 吗?

java - 当用户单击生成按钮时生成 N 个随机 4 位整数字符串和 7 字符字符串,当用户单击显示按钮时显示所有使用共享首选项

ANDROID:按下按钮后如何延迟?

ios - 后台范围内的iBeacon有时会延迟

android - 我的应用程序出现蓝牙问题

Android:强制蓝牙