BluetoothLEAdvertisementWatcherTrigger クラス

定義

バックグラウンドで Bluetooth LE アドバタイズをスキャンするために登録されているトリガーを表します。

public ref class BluetoothLEAdvertisementWatcherTrigger sealed
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class BluetoothLEAdvertisementWatcherTrigger final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class BluetoothLEAdvertisementWatcherTrigger final
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class BluetoothLEAdvertisementWatcherTrigger
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class BluetoothLEAdvertisementWatcherTrigger
function BluetoothLEAdvertisementWatcherTrigger()
Public NotInheritable Class BluetoothLEAdvertisementWatcherTrigger
継承
Object Platform::Object IInspectable BluetoothLEAdvertisementWatcherTrigger
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

注釈

バックグラウンド タスクは、通知を受信したときに起動されます。

このトリガーは BluetoothAdvertisementWatcher クラスと同様に機能しますが、アプリでバックグラウンドでアドバタイズを受信できるため、より多くの制限があります。 特に、単一のフィルター パターンがバックグラウンドで受け入れられます (それ以上ではなく、少なくない)。

登録されると、バックグラウンド ウォッチャーはベスト エフォート方式で処理されます。 トリガーによって構成されたフィルターに一致するアドバタイズが受信されると、アプリに通知するバックグラウンド タスクが起動されます。 アプリは、バックグラウンド タスク コンテキストで提供されるトリガーの詳細を通じて、バックグラウンド ウォッチャーのエラーまたは中断も通知されます。 アドバタイズの受信を停止するには、このトリガーに関連付けられているバックグラウンド タスクを登録解除する必要があります。

次の広告の種類は、一般的な性質上、バックグラウンドでフィルター処理することはできません

  • Flags (0x01)
  • デバイスのクラス (0x0D)
  • Security Manager 帯域外フラグ (0x11)
  • 外観 (0x19)
  • LE ロール (0x1C)

製造元固有のデータ (0xFF) 型の生セクションのバックグラウンド フィルターで、0x00を持つセクションの 2 番目のバイトにのみ一致する場合は、会社識別子フィールドの最も重要なバイトに対応するため、拒否されます。 現在、SIG 割り当て会社の識別子はすべて、このバイトが 0x00 に設定されており、1 バイトのみの部分一致を実行すると、複数の広告主が存在する場合に、受信した広告が過剰になる可能性があります。 これは、システムのバッテリ寿命に大きな影響を与える可能性があります。

BluetoothLEAdvertisementWatcherTrigger の使用は、使用可能なハードウェア オフロード リソースによって制限されます。 ローカル Bluetooth 無線で HCI 拡張機能 をサポートする新しい Windows デバイスは、電力アドバタイズスキャンを低くし、ビーコンなどの長期的なシナリオでバッテリ寿命を向上します。 使用可能なハードウェア リソースの量は、無線と現在のシステム全体の使用状況によって異なります。このトリガーに登録しようとすると、使用可能なリソースがなくなったときに BluetoothError.ResourceInUse が返されます。 アプリでは、これらのリソースを慎重に使用して、必要な特定のリモート広告主のみの固有の広告データを監視する際に、集中した電力効率の高いシナリオを提供する必要があります。

多くの新しい Windows デバイスでは HCI 拡張機能がサポートされていますが、特に古いバージョンの Windows から古いデバイスをアップグレードする場合はサポートされない場合があります。 このような場合、Windows はソフトウェアのハードウェア フィルター処理をエミュレートし、システム上のすべてのアプリでデバイスごとに最大 20 個のトリガー条件を提供します。 このソフトウェア エミュレーションを使用する場合、最大数に達するとトリガー リソースに登録しようとすると、例外がスローされ、エラー ERROR_NO_SYSTEM_RESOURCES (0x800705AA) が発生します。

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
2004 19041 AllowExtendedAdvertisements

コンストラクター

BluetoothLEAdvertisementWatcherTrigger()

BluetoothLEAdvertisementWatcherTrigger クラスの新しいインスタンスを作成します。

プロパティ

AdvertisementFilter

ペイロード セクション ベースのフィルター処理を使用する Bluetooth LE アドバタイズフィルターの構成を取得または設定します。

AllowExtendedAdvertisements

拡張広告形式を使用して広告を受信できるようにします。 既定値は False です。

MaxOutOfRangeTimeout

このトリガーの SignalStrengthFilter プロパティでサポートされている範囲外の最大タイムアウトを取得します。

MaxSamplingInterval

このトリガーの SignalStrengthFilter プロパティでサポートされている最大サンプリング間隔を取得します。 最大サンプリング間隔は、サンプリング フィルターを非アクティブ化するために使用され、範囲外に入ってくるデバイスに基づいて受信したイベントのみをトリガーします。

MinOutOfRangeTimeout

このトリガーの SignalStrengthFilter プロパティでサポートされている最小範囲外タイムアウトを取得します。

MinSamplingInterval

このトリガーの SignalStrengthFilter プロパティでサポートされている最小サンプリング間隔を取得します。 バックグラウンド ウォッチャーの最小サンプリング間隔は、前景に対応する間隔とは異なり、0 にすることはできません。

SignalStrengthFilter

信号強度ベースのフィルター処理を使用する Bluetooth LE アドバタイズフィルターの構成を取得または設定します。

適用対象

こちらもご覧ください