我正在使用QBluetoothDeviceDiscoveryAgent在Android手机上搜索BLE设备。
我要求通过调用QBluetoothDeviceDiscoveryAgent::start()开始设备搜索。几秒钟后,QBluetoothDeviceDiscoveryAgent::finished()被发出,但是我没有调用QBluetoothDeviceDiscoveryAgent::stop()。
在这一点上,我的BLE设备还没有找到(速度很慢...我知道),并且由于系统自行决定停止搜索而不会....所以我需要手动重新启动搜索。
为什么系统停止搜索? Qt doc说到QBluetoothDeviceDiscoveryAgent::finished():
那是什么意思?谁能决定发现是否完成?它来自BLE标准吗?作为最终用户,我是唯一一个知道何时完成(即何时找到我要查找的设备...)的人。
最佳答案
正如Frank Osterfeld所评论的那样,QBluetoothDeviceDiscoveryAgent
(see line 273)的android实现默默地创建了10秒的超时,该超时会自动停止搜索。
对于想要搜索超过10秒的用户来说,这是一个痛苦...
在此处填写了错误报告:https://bugreports.qt.io/browse/QTBUG-53012