Что делает QBluetoothDeviceDiscoveryAgent :: finish () вызываться?

я использую QBluetoothDeviceDiscoveryAgent искать устройства BLE на телефоне Android.

Я запрашиваю поиск устройства по телефону QBluetoothDeviceDiscoveryAgent :: заводится (). Через несколько секунд QBluetoothDeviceDiscoveryAgent :: законченный () испускается, но я не звонил QBluetoothDeviceDiscoveryAgent :: остановка ().

На данный момент мое устройство BLE еще не было найдено (оно медленно … я знаю), и не будет, поскольку система самостоятельно решила прекратить поиск …. поэтому мне нужно перезапустить поиск вручную.

Почему система останавливает поиск? Qt Doc говорит о QBluetoothDeviceDiscoveryAgent :: законченный ():

Этот сигнал испускается, когда обнаружение устройства Bluetooth завершается.

Что это значит? Как кто-нибудь может решить, что открытие завершено? Это от стандарта BLE? Как конечный пользователь, я единственный, кто знает, когда он будет завершен, то есть когда будет найдено устройство, которое я ищу ….

3

Решение

Как прокомментировал Фрэнк Остерфельд, реализация Android QBluetoothDeviceDiscoveryAgent (см. строку 273) автоматически создает 10-секундный таймаут, который автоматически останавливает поиск.

Это боль для пользователей, которые хотят искать дольше 10 секунд …

Заполнен отчет об ошибке здесь: https://bugreports.qt.io/browse/QTBUG-53012

1

Другие решения

Других решений пока нет …