是什么让QBluetoothDeviceDiscoveryAgent :: finished()被调用?

时间:2016-04-26 07:29:07

标签: android c++ qt bluetooth bluetooth-lowenergy

我正在使用QBluetoothDeviceDiscoveryAgent在Android手机上搜索BLE设备。

我通过调用QBluetoothDeviceDiscoveryAgent::start()请求启动设备搜索。几秒钟后,会发出QBluetoothDeviceDiscoveryAgent::finished(),但我没有拨打QBluetoothDeviceDiscoveryAgent::stop()

此时,我的BLE设备尚未找到(它很慢......我知道),并且由于系统自行决定停止搜索,因此它不会被发现....所以我需要手动重启搜索。

为什么系统会停止搜索? Qt doc说QBluetoothDeviceDiscoveryAgent::finished()

  

蓝牙设备发现完成时会发出此信号。

这是什么意思?怎么会有人决定发现完成?它是否来自BLE标准?作为最终用户,我是唯一一个知道它何时完成的人,也就是当我找到的设备被发现时....

1 个答案:

答案 0 :(得分:1)

正如Frank Osterfeld评论的那样,QBluetoothDeviceDiscoveryAgentsee line 273)的android实现会静默创建一个10秒的超时,自动停止搜索。

对于想要搜索时间超过10秒的用户而言,这是一种痛苦......

在此填写错误报告:https://bugreports.qt.io/browse/QTBUG-53012