System.Bluetooth.TBluetoothLEManager.StartDiscovery

提供: RAD Studio API Documentation
移動先: 案内検索

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 */;

プロパティ

種類 可視性 ソース ユニット
function public
System.Bluetooth.pas
System.Bluetooth.hpp
System.Bluetooth TBluetoothLEManager


説明

Bluetooth LE を使用するリモート デバイスを見つけるための検出操作を開始します。

StartDiscovery の第1オーバーロード メソッドは、次のパラメータをとります:

  • Timeout: Bluetooth LE を使用するリモート デバイスの検出にかける時間を指定します。
  • AFilterUUIDList: 1 つ以上の Bluetooth GATT サービス UUID から成るリストです(任意指定)。このリストが指定された場合、マネージャは、指定されたサービスの少なくとも 1 つをアドバタイズしないリモート デバイスを無視します。
  • ForceConnectTrueAFilterUUIDList の値が指定された場合、マネージャは、検出したすべてのリモート デバイスに接続して、各リモート デバイスから提供されるサービスの完全なリストを取得します。そのため、StartDiscovery では、指定されたサービスのいずれかを提供はするがアドバタイズしないデバイスを無視しません。

StartDiscovery の第2オーバーロード メソッドは、次のパラメータをとります:

  • ABluetoothLEScanFilterList は、スキャンしたい BLE デバイスに関する特定のデータ フィールドを格納する BLE スキャン フィルタリストを表します。

検出されたリモート デバイスごとに、OnDiscoverLeDevice イベントが 1 回発生します。検出操作が終了すると、OnDiscoveryEnd イベントが発生します。検出されたリモート デバイスのリストOnDiscoveryEnd から提供されます。

デバイスが指定のサービスのいずれかをアドバタイズまたは提供しないため無視される場合は、

  • そのリモート デバイスについては、OnDiscoverLeDevice イベントが発生しません。
  • そのリモート デバイスは、OnDiscoveryEnd のイベント ハンドラが受け取るリモート デバイス リストに含まれていません。

StartDiscovery は、検出が正常に開始された場合は True を返し、何らかの原因で検出が開始されなかった場合は False を返します。

StartDiscovery から、現在のアダプタStartDiscovery が呼び出されます。

注意: iOS 13.3.1 や 13.3.0 を使用している場合、Bluetooth LE デバイス検知メソッド TBluetoothManagerLE.StartDiscoveryTBluetoothLE.DiscoverDevices は、モバイル アプリケーションを通知なく閉じます。

プラットフォーム サポート

プラットフォーム 備考

32 ビット Windows
64 ビット Windows

  • StartDiscovery により OnDiscoveryEnd イベントがすぐにトリガされるため、Timeout は無視されます。
  • 常に True を返します。

OS X

  • Timeout で指定された時間の経過後しばらくして、OnDiscoveryEnd が常に発生します(それより前には発生しません)。
  • 常に True を返します。

iOS

  • Timeout で指定された時間の経過後しばらくして、OnDiscoveryEnd が常に発生します(それより前には発生しません)。
  • 常に True を返します。

Android

  • Timeout で指定された時間の経過後、OnDiscoveryEnd が常に発生します(それより前には発生しません)。

関連項目