在没有连接的情况下接收 BLE 数据是一种好方法吗?

Is it good way to receive BLE data without connection?

我的应用程序必须 运行 在没有用户交互的情况下永远从蓝牙网状网络接收数据。 到目前为止,我制作的应用程序运行良好。但是Mesh Library(Qualcomm的CSRMesh)存在一些问题,特别是在桥接方面,使得应用程序无法再通过Mesh网络进行通信。此外没有技术支持,我想至少从那个库中解放数据发送​​和接收部分。 我测试发现,在没有BLE连接的情况下,只有扫描功能才能接收到mesh数据,并使用Network key解密成功。但我不确定这是不是好方法。

通过网状网络进行通信的实用方法是

  1. 扫描附近的网状设备。
  2. 连接到一些网状设备。(从这一步Android可以停止扫描)
  3. 开始通过连接的网状设备进行通信。

没有BLE连接,我必须一直扫描才能与Mesh网络通信。 我认为 BLE 连接需要通信的原因是为了节省 Android 设备的电池。

通过 BLE 广告而不是通过蓝牙连接交换数据没有问题。事实上,BLE mesh 技术本质上是一种基于广告的技术,即在整个网络中发送数据时不涉及 BLE 连接。此外,理论上您应该通过依赖广告而不是连接来节省更多电量,因为您不必发送空数据包来维持连接。

可在此处找到有关 BLE 网格的更多信息:-

Mesh Networking Specification

希望对您有所帮助。