我正在使用QBluetoothDeviceDiscoveryAgent在Android手机上搜索BLE设备。
我通过调用QBluetoothDeviceDiscoveryAgent::start()请求启动设备搜索。几秒钟后,会发出QBluetoothDeviceDiscoveryAgent::finished(),但我没有拨打QBluetoothDeviceDiscoveryAgent::stop()。
此时,我的BLE设备尚未找到(它很慢......我知道),并且由于系统自行决定停止搜索,因此它不会被发现....所以我需要手动重启搜索。
为什么系统会停止搜索? Qt doc说QBluetoothDeviceDiscoveryAgent::finished():
蓝牙设备发现完成时会发出此信号。
这是什么意思?怎么会有人决定发现完成?它是否来自BLE标准?作为最终用户,我是唯一一个知道它何时完成的人,也就是当我找到的设备被发现时....
答案 0 :(得分:1)
正如Frank Osterfeld评论的那样,QBluetoothDeviceDiscoveryAgent
(see line 273)的android实现会静默创建一个10秒的超时,自动停止搜索。
对于想要搜索时间超过10秒的用户而言,这是一种痛苦......