我正在为C/C++编写一个用于蓝牙低功耗设备的库。到目前为止,我一直使用Bluez公开的D-Bus接口,并且能够发现,连接和与设备进行通信。Bluez自动重新连接设备
但是,当由于链路故障或超出范围而导致设备断开连接时,重新连接到该设备并非微不足道。理想情况下,我希望能够为所有断开连接的设备创建待定连接,但Bluez似乎不支持该连接。 Bluez似乎只支持一次同时连接呼叫,它在15-20秒后超时。
因此,解决方案将是侦听广告包,并在检测到已知设备时进行连接。 #bluez上的优秀人士告诉我,这已经实现了,而实现它的方法是使用GattManager1 RegisterProfile方法注册一个实现GattProfile1的对象。尝试这样做没有结果,设备在链接失败后保持断开状态。它的记录也很差,所以很有可能我错过了一些东西。
我的问题是:这是正确的解决方案吗?它会提供无缝和快速重新连接吗?如果是,可能会出现什么问题?