DeviceWatcher 类

定义

动态枚举设备,以便在初始枚举完成后添加、删除或更改设备时,应用会收到通知。

public ref class DeviceWatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class DeviceWatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class DeviceWatcher
Public NotInheritable Class DeviceWatcher
继承
Object Platform::Object IInspectable DeviceWatcher
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

示例

有关 C# 和 C++ 中的完整示例,请参阅 设备枚举和配对示例

注解

应用调用 “开始” 以开始搜索设备。 在此初始枚举期间,DeviceWatcher 会为找到的每个设备引发 Added 事件,直到找到所有设备。 当初始枚举完成时,DeviceWatcher 将引发 EnumerationCompleted 事件,并在添加、更新或删除设备时继续引发事件。

下图显示了 DeviceWatcher 如何在 DeviceWatcherStatus 枚举表示的状态之间转换。

DeviceWatcher 状态的状态图

仅当 DeviceWatcher 处于“创建”、“已停止”“已中止”状态时,才能调用 Start 方法。 Status 属性指示 DeviceWatcher 状态。 重新启动观察程序时,请等待 已停止 事件,然后再调用 Start

停止 会将 DeviceWatcher 转换为 “正在停止” 状态并立即完成。 一旦已引发的所有事件都已完成,观察程序将转换为“ 已停止 ”状态。

如果应用需要知道 DeviceWatcher 何时停止,则应用可能会等待 停止 事件。 调用方必须先等待 “已停止 ”事件,然后才能调用 Start 以重启观察程序。 如果调用方不想在 停止 后接收任何其他事件,但不想等待 已停止 事件,可以取消订阅事件。

注意

应用必须订阅所有 添加删除更新 的事件,以便当设备添加、删除或更新时收到通知。 如果应用仅处理 添加 的事件,如果在初始设备枚举完成后将设备添加到系统,则它将不会收到更新。

属性

Status

DeviceWatcher 的状态。

方法

GetBackgroundTrigger(IIterable<DeviceWatcherEventKind>)

获取设备列表更改的 DeviceWatcherTrigger 对象监视。

Start()

开始搜索设备,并订阅设备枚举事件。

Stop()

停止引发添加、更新和删除枚举结果的事件。

事件

Added

将设备添加到 DeviceWatcher 枚举的集合时引发的事件。

EnumerationCompleted

设备枚举完成时引发的事件。

Removed

从枚举设备集合中删除设备时引发的事件。

Stopped

枚举操作已停止时引发的事件。

Updated

在枚举设备集合中更新设备时引发的事件。

适用于

另请参阅