c# Windows.Devices.Bluetooth watcher OnAdvertisementReceived代码示例
时间: 2024-09-11 19:02:38 浏览: 17
在C#中,使用Windows.Devices.Bluetooth命名空间下的类可以实现蓝牙相关的功能。如果你想要在Windows IoT核心版或者Windows应用中监听蓝牙广告,你可以使用`BluetoothLEAdvertisementWatcher`类。下面是一个简单的代码示例,展示了如何设置一个`BluetoothLEAdvertisementWatcher`并在接收到蓝牙广告时触发`OnAdvertisementReceived`事件。
```csharp
using Windows.Devices.Bluetooth.Advertisement;
public class BluetoothLEAdvertisementWatcherExample
{
public void StartWatching()
{
// 创建一个新的广告观察者
var watcher = new BluetoothLEAdvertisementWatcher();
// 可选的:设置广告过滤条件
// watcher.AdvertisementFilter.Advertisement.RecordTypes.Add(...);
// 注册事件处理程序
watcher.Received += OnAdvertisementReceived;
// 开始监听广告
watcher.Start();
}
private void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args)
{
// 当接收到广告时,此方法会被调用
// args是包含接收到的广告信息的对象
// 获取发送广告的设备地址
var deviceAddress = args.BluetoothAddress;
// 获取广告数据
var advertisementData = args.Advertisement.Data;
// 这里可以根据需要处理接收到的广告数据
// 例如:显示设备名称、地址或者特定的服务UUID等
// 注意:处理广告数据时应确保线程安全,特别是如果涉及到UI操作
}
}
```
在这个例子中,`BluetoothLEAdvertisementWatcher`类用于创建一个广告观察者,通过注册`Received`事件处理程序来监听蓝牙广告。当蓝牙设备在观察范围内广播广告时,`OnAdvertisementReceived`方法会被调用,并提供了广告的详细信息,如设备的蓝牙地址和广告数据。