Ich verwende QBluetoothDeviceDiscoveryAgent, um BLE-Geräte auf einem Android-Telefon zu suchen.Was macht QBluetoothDeviceDiscoveryAgent :: finish() aufgerufen?
Ich fordere Gerätesuche auf, um durch den Aufruf QBluetoothDeviceDiscoveryAgent::start() gestartet werden. Nach ein paar Sekunden wird QBluetoothDeviceDiscoveryAgent::finished() ausgegeben, aber ich habe QBluetoothDeviceDiscoveryAgent::stop() nicht aufgerufen.
Zu diesem Zeitpunkt wurde mein BLE-Gerät noch nicht gefunden (es ist langsam ... ich weiß), und es wird nicht als das System allein beschlossen, die Suche zu stoppen .... so muss ich neu starten die Suche manuell.
Warum stoppt das System die Suche? Qt doc sagt über QBluetoothDeviceDiscoveryAgent::finished():
Dieses Signal wird ausgegeben, wenn die Bluetooth-Geräteerkennung abgeschlossen ist.
Was bedeutet das? Wie könnte jemand entscheiden, dass die Entdeckung abgeschlossen ist? Kommt es vom BLE-Standard? Als Endbenutzer bin ich der Einzige, der weiß, wann es fertig ist, dh wann das Gerät, das ich suche, gefunden wurde.
, die von Android Bluetooth-Schnittstelle weitergeleitet werden könnten. Ich würde mir die Implementierung ansehen, um zu sehen, was sie auslösen kann. –
@FrankOsterfeld: Guter Punkt! 'src \ bluetooth \ qbluetoothdevicediscoveryagent_android.cpp', Zeile 273 sie erstellen einen 10-Sekunden-Timer, der den Scanvorgang stoppt .... Sie können dies als Antwort posten und ich werde es akzeptieren. – jpo38