System.Beacon.Components.TCustomBeacon.OnParseManufacturerData
Delphi
property OnParseManufacturerData: TParseManufacturerDataEvent read FOnParseManufacturerData write FOnParseManufacturerData;
C++
__property System::Beacon::TParseManufacturerDataEvent OnParseManufacturerData = {read=FOnParseManufacturerData, write=FOnParseManufacturerData};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
event | public | System.Beacon.Components.pas System.Beacon.Components.hpp |
System.Beacon.Components | TCustomBeacon |
説明
Bluetooth LE マネージャでデバイスが検出されたときに発生します。このイベントを使用すれば、検出されたデバイスのアドバタイズ データに含まれているメーカー固有データを解析することができます。
Bluetooth LE デバイスは、他の Bluetooth LE デバイスによる検出が可能なように、自分自身をアドバタイズすることができます。ビーコンは Bluetooth LE デバイスの一種で、そのアドバタイズ データには、そのビーコンとお使いの Bluetooth LE デバイスの距離を決定するのに使用できるメーカー固有データが含まれています。
そのメーカー固有データの形式は、通常、広く使用されている 2 つの標準である iBeacon と AltBeacon のどちらか一方に従います。ビーコン コンポーネントではこれらの標準をサポートしており、前もって、使用するのに適した標準が構成されている限り、どちらかの標準に従う任意のメーカー固有データを正常に解析できます。
ただし、これらの標準のどちらにも従わず、データを独自の形式で提供するビーコンが存在する可能性もあります。お使いのビーコンがそれに該当する場合は、入力されるメーカー固有データを解析してビーコン情報レコードに値を設定するように、OnParseManufacturerData のイベント ハンドラを実装することができます。
OnParseManufacturerData のイベント ハンドラで受け取るパラメータは次のとおりです。
Sender
は、対象となるビーコン コンポーネントです。AData
は、検出された Bluetooth LE デバイスのアドバタイズ データに含まれているメーカー固有データです。AData_High
はAData
のバイト数です。BeaconInfo
は、AData
で渡されるデータの解析結果の格納先となる TBeaconInfo インスタンスです。Handled
は、イベント ハンドラで入力データが正常に解析され、必要な情報がBeaconInfo
に設定されたか(True
)、それとも、代わりにビーコン コンポーネントのデフォルト パーサーで入力データが解析されるものとイベント ハンドラが想定しているか(False
)を決定します。Handled
はデフォルトでFalse
になっているため、入力データを正常に解析できたら、その値を必ずTrue
に変更してください。
イベント ハンドラの出発点として、サポートされている標準の既存のパーサー関数の実装を調べてみてください。iOS 以外のプラットフォームのビーコン API を実装しているプラットフォーム固有の System.Beacon.Common.pas ユニットに含まれている TStandardBeaconParser.Parse
と TAlternativeBeaconParser.Parse
を参照してください。このユニットは C:\Program Files (x86)\Embarcadero\Studio\23.0\source\rtl\net フォルダにあります。