我想制作一个观看BLE广告的节目(UWP)。我使用了相同的“Windows-universal-samples”代码,用于观看所有LE广告并将其显示在列表中。 但我想要一种方法来阅读广告中的数据或消息。 有人可以帮我吗? 提前谢谢!
更新27/01
您好,
我尝试了一个可以用作广告客户的应用程序。我运行程序但是我得到了以下结果:
[04:28:03.265]: type=ConnectableUndirected, name=, manufacturerData=[], Message=""
我不知道为什么我的代码无法读取任何数据! 请任何人帮助我!
答案 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文档。