BluetoothLEAdvertisementWatcherTrigger 类

定义

表示注册以在后台扫描蓝牙 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 类,但具有更多限制,因为它允许应用在后台接收广告。 值得注意的是,在后台完全接受单个筛选器模式, (不会更多,而不是更少) 。

注册后,后台观察程序将尽最大努力提供服务。 当收到与通过触发器配置的筛选器匹配的播发时,将启动后台任务以通知应用。 通过后台任务上下文中提供的触发器详细信息,还会通知应用后台观察程序的故障或中断。 若要停止接收播发,必须取消注册与此触发器关联的后台任务。

不允许在后台筛选以下播发类型,因为它们的泛型性质

  • 标志 (0x01)
  • 设备 (0x0D) 类
  • 安全管理器带外标志 (0x11)
  • 外观 (0x19)
  • LE 角色 (0x1C)

将拒绝仅匹配具有0x00部分的第二个字节的原始部分的制造商特定数据 (0xFF) 的背景筛选器,因为它对应于公司标识符字段的最有效字节。 所有 SIG 分配的公司标识符当前将此字节设置为 0x00,如果存在多个广告商,则仅使用一个字节执行部分匹配可能会导致收到的广告过多。 这可能会显著影响系统的电池使用时间。

BluetoothLEAdvertisementWatcherTrigger 的使用受可用硬件卸载资源的限制。 本地蓝牙无线电中支持 HCI 扩展 的新 Windows 设备提供低功耗广告扫描,从而延长了长期方案(如信标)的电池使用时间。 可用的硬件资源量取决于无线电和当前系统范围的使用情况,当没有更多资源可用时,尝试注册此触发器将返回 BluetoothError.ResourceInUse 。 应用应谨慎使用这些资源,以便提供一个集中且高效的方案,以便仅监视所需的特定远程广告商的唯一广告数据。

虽然许多新 Windows 设备都支持 HCI 扩展,但有些设备可能不支持,尤其是在较旧设备上从旧 Windows 版本升级的情况下。 在这些情况下,Windows 将模拟软件中的硬件筛选,在系统上的所有应用中,每个设备最多提供 20 个触发条件。 使用此软件模拟时,在达到最大值后尝试注册触发器资源将导致引发异常,并 ERROR_NO_SYSTEM_RESOURCES (0x800705AA) 错误。

版本历史记录

Windows 版本 SDK 版本 已添加值
2004 19041 AllowExtendedAdvertisements

构造函数

BluetoothLEAdvertisementWatcherTrigger()

创建 BluetoothLEAdvertisementWatcherTrigger 类的新实例。

属性

AdvertisementFilter

获取或设置使用基于有效负载部分的筛选的蓝牙 LE 播发筛选的配置。

AllowExtendedAdvertisements

启用使用扩展广告格式接收广告。 默认为 False。

MaxOutOfRangeTimeout

获取此触发器的 SignalStrengthFilter 属性支持的最大范围外超时。

MaxSamplingInterval

获取此触发器的 SignalStrengthFilter 属性支持的最大采样间隔。 最大采样间隔用于停用采样筛选器,并且仅根据传入和传出范围的设备触发接收的事件。

MinOutOfRangeTimeout

获取此触发器的 SignalStrengthFilter 属性支持的最小范围外超时。

MinSamplingInterval

获取此触发器的 SignalStrengthFilter 属性支持的最小采样间隔。 后台观察程序的最小采样间隔不能为零,这与前台观察程序的最小采样间隔不同。

SignalStrengthFilter

获取或设置使用基于信号强度的筛选的蓝牙 LE 播发筛选的配置。

适用于

另请参阅