System.Bluetooth.TBluetoothLEManager.StartDiscovery

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function StartDiscovery(Timeout: Cardinal; const AFilterUUIDList: TBluetoothUUIDsList = nil; ForceConnect: Boolean = False): Boolean; overload;
function StartDiscovery(Timeout: Cardinal; const ABluetoothLEScanFilterList: TBluetoothLEScanFilterList): Boolean; overload;

C++

bool __fastcall StartDiscovery(unsigned Timeout, TBluetoothUUIDsList* const AFilterUUIDList = (TBluetoothUUIDsList*)(0x0), bool ForceConnect = false)/* overload */;
bool __fastcall StartDiscovery(unsigned Timeout, TBluetoothLEScanFilterList* const ABluetoothLEScanFilterList)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Bluetooth.pas
System.Bluetooth.hpp
System.Bluetooth TBluetoothLEManager


Beschreibung

Beginnt die Ermittlung von Remote-Geräten, die Bluetooth Low Energy verwenden.

Die erste überladene Methode von StartDiscovery nimmt die folgenden Parameter an:

  • Timeout legt fest, wie viel Zeit für die Ermittlung von Remote-Geräten mit Bluetooth Low Energy aufgewendet werden soll.
  • AFilterUUIDList ist eine optionale Liste mit einer oder mehreren UUIDs von Bluetooth-GATT-Diensten. Wenn Sie diese Liste bereitstellen, ignoriert der Manager die Remote-Geräte, die nicht mindestens einen der angegebenen Dienste bekanntgeben.
  • Wenn ForceConnect True ist und Sie einen Wert für AFilterUUIDList angeben, stellt der Manager eine Verbindung zu allen ermittelten Remote-Geräten her, um eine vollständige Liste der Dienste zu erstellen, die jedes Remote-Gerät bereitstellt, damit StartDiscovery keine Geräte ignoriert, die einen der angegebenen Dienste bereitstellen, aber nicht bekanntgeben.

Die zweite überladene Methode von StartDiscovery nimmt die folgenden Parameter an:

  • ABluetoothLEScanFilterList repräsentiert eine Liste mit den BLE-Suchfiltern, die bestimmte Datenfelder über die BLE-Geräte, nach denen gesucht werden soll, enthalten.

Das Ereignis OnDiscoverLeDevice wird einmal für jedes ermittelte Remote-Gerät ausgelöst. Bei Abschluss der Ermittlung wird das Ereignis OnDiscoveryEnd ausgelöst. OnDiscoveryEnd stellt eine Liste der ermittelten Remote-Geräte bereit.

Wenn ein Gerät ignoriert wird, weil es keinen der angegebenen Dienste bekanntgibt oder bereitstellt:

  • Wird das Ereignis OnDiscoverLeDevice nicht für dieses Remote-Gerät ausgelöst.
  • Ist das Remote-Gerät nicht Teil der Liste der Remote-Geräte, die die Ereignisbehandlungsroutine von OnDiscoveryEnd erhält.

StartDiscovery gibt True zurück, wenn die Ermittlung erfolgreich gestartet wurde, oder False, wenn die Ermittlung nicht gestartet werden konnte.

StartDiscovery ruft StartDiscovery vom aktuellen Adapter auf.

Beachtung: Bei Verwendung von iOS 13.3.1 und 13.3.0 verursachen die Ermittlungsmethoden TBluetoothManagerLE.StartDiscovery und TBluetoothLE.DiscoverDevices des Bluetooth LE-Geräts, dass die mobile App ohne Hinweis geschlossen wird.

Plattformunterstützung

Plattform Bemerkungen

32-Bit-Windows
64-Bit-Windows

OS X

  • OnDiscoveryEnd wird immer einige Zeit nach der angegebenen Dauer (Timeout), niemals davor ausgelöst.
  • Gibt immer True zurück.

iOS

  • OnDiscoveryEnd wird immer einige Zeit nach der angegebenen Dauer (Timeout), niemals davor ausgelöst.
  • Gibt immer True zurück.

Android

  • OnDiscoveryEnd wird immer nach der angegebenen Dauer (Timeout), niemals davor ausgelöst.

Siehe auch