BluetoothLEAdvertisementWatcherTrigger 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示注册以在后台扫描蓝牙 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
- 继承
- 属性
- 实现
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 属性支持的最小采样间隔。 后台观察程序的最小采样间隔不能为零,这与前台观察程序的最小采样间隔不同。 |
ScanParameters |
表示注册以在后台扫描蓝牙 LE 播发的触发器。 |
SignalStrengthFilter |
获取或设置使用基于信号强度的筛选的蓝牙 LE 播发筛选的配置。 |
UseCodedPhy |
表示注册以在后台扫描蓝牙 LE 播发的触发器。 |
UseUncoded1MPhy |
表示注册以在后台扫描蓝牙 LE 播发的触发器。 |