BLE广告观察者 - 如何获取数据

时间:2018-01-11 08:13:28

标签: c# uwp windows-10 bluetooth-lowenergy advertisement

我想制作一个观看BLE广告的节目(UWP)。我使用了相同的“Windows-universal-samples”代码,用于观看所有LE广告并将其显示在列表中。 但我想要一种方法来阅读广告中的数据或消息。 有人可以帮我吗? 提前谢谢!

更新27/01

您好,
我尝试了一个可以用作广告客户的应用程序。我运行程序但是我得到了以下结果:

[04:28:03.265]: type=ConnectableUndirected, name=, manufacturerData=[], Message=""

我不知道为什么我的代码无法读取任何数据! 请任何人帮助我!

1 个答案:

答案 0 :(得分:2)

  

但我想要一种方法来阅读广告中的数据或消息。

您可以创建蓝牙LE广告观察者,设置回叫,并开始观看所有LE广告。

BluetoothLEAdvertisementWatcher watcher = new BluetoothLEAdvertisementWatcher();
watcher.Received += OnAdvertisementReceived;
watcher.Start();

如果您收到了广告,并且以下manufacturerSections是BlutoothLEAdvertisement中制造商特定数据部分的列表,您可以在OnAdvertisementReceived事件处理程序中处理它,如下所示。

var manufacturerSections = eventArgs.Advertisement.ManufacturerData;
if (manufacturerSections.Count > 0)
{
    // Only print the first one of the list
    var manufacturerData = manufacturerSections[0];
    var data = new byte[manufacturerData.Data.Length];
    using (var reader = DataReader.FromBuffer(manufacturerData.Data))
    {
        reader.ReadBytes(data);
    }
    // Print the company ID + the raw data in hex format
    manufacturerDataString = string.Format("0x{0}: {1}",
        manufacturerData.CompanyId.ToString("X"),
        BitConverter.ToString(data));
}

有关更多信息,请参阅Bluetooth LE Advertisements文档。