要配置DeviceInformation.
cr
eateWatcher()以在BTLE服务上进行过滤,您可以使用DeviceWatcherEventKind枚举和DeviceInformation类的属性来实现。以下是一个示例代码,演示如何配置DeviceInformation.
cr
eateWatcher()以过滤BTLE服务:
using Windows.Devices.Enumeration;
// 创建一个Watcher对象
DeviceWatcher deviceWatcher;
// 配置DeviceWatcher以过滤BTLE服务
void ConfigureDeviceWatcher()
// 定义过滤条件
string aqsFilter = BluetoothLEDevice.GetDeviceSelector();
// 创建Watcher对象
deviceWatcher = DeviceInformation.CreateWatcher(aqsFilter);
// 配置Watcher以过滤BTLE服务
deviceWatcher.Added += DeviceWatcher_Added; // 添加设备时触发的事件
deviceWatcher.Updated += DeviceWatcher_Updated; // 更新设备时触发的事件
deviceWatcher.Removed += DeviceWatcher_Removed; // 移除设备时触发的事件
// 启动Watcher
deviceWatcher.Start();
// 当有设备添加时触发的事件
private async void DeviceWatcher_Added(DeviceWatcher sender, DeviceInformation deviceInfo)
// 检查设备是否支持BTLE服务
if (deviceInfo.Properties.ContainsKey("System.Devices.Aep.ProtocolId") &&
(deviceInfo.Properties["System.Devices.Aep.ProtocolId"].ToString() == "{bb7bb05e-5972-42b5-94fc-76eaa7084d49}"))
// 这是一个BTLE设备,您可以在这里进行进一步的处理
// 例如,您可以获取设备的名称和ID
string deviceName = deviceInfo.Name;
string deviceId = deviceInfo.Id;
// 执行其他操作
// 当有设备更新时触发的事件
private void DeviceWatcher_Updated(DeviceWatcher sender, DeviceInformationUpdate deviceInfoUpdate)
// 更新设备信息,如果需要的话
// 当有设备移除时触发的事件
private void DeviceWatcher_Removed(DeviceWatcher sender, DeviceInformationUpdate deviceInfoUpdate)
// 移除设备,如果需要的话
// 在适当的时机停止Watcher
void StopDeviceWatcher()
if (deviceWatcher != null)
deviceWatcher.Stop();
deviceWatcher = null;
在上述示例中,我们使用BluetoothLEDevice.GetDeviceSelector()方法获取与BTLE设备相关的设备选择器,然后将其作为参数传递给DeviceInformation.CreateWatcher()方法来创建一个Watcher对象。然后,我们订阅了Added、Updated和Removed事件,以便在设备添加、更新或移除时触发相应的事件处理程序。
在DeviceWatcher_Added事件处理程序中,我们首先检查设备是否支持BTLE服务,通过检查设备的System.Devices.Aep.ProtocolId属性。如果是BTLE设备,我们可以在此处进行进一步的处理,例如获取设备的名称和ID。您可以根据需要执行其他操作。
最后,在适当的时机,您可以调用StopDeviceWatcher()方法停止Watcher。