简体   繁体   English

UWP BLE广告读取数据

[英]UWP BLE Advertising read data

I send data (short string) in BLE Advertising with an iPhone and I want to read this string from a Windows device. 我使用iPhone在BLE广告中发送数据(短字符串),我想从Windows设备读取此字符串。

So I'm trying the sample project "BluetoothAdvertisement" from : https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BluetoothAdvertisement 所以我正在尝试以下示例项目“ BluetoothAdvertisement”: https : //github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BluetoothAdvertisement

I see that i receive packages, I can read the localname etc... in the callBack: 我看到我收到了包裹,可以在callBack中读取本地名称等...:

 private async void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
    { }

But how can I read the string ? 但是,如何读取字符串?

I don't know which ways you used to add data to an Advertisement, if you are using a company-specific advertisement. 如果您使用的是公司特定的广告,我不知道您过去使用哪种方式向广告中添加数据。 I think you can get custom data section from BluetoothLEAdvertisementReceivedEventArgs ,and then query eventArgs.Advertisement.ManufacturerData to get BluetoothLEManufacturerData . 我认为您可以从BluetoothLEAdvertisementReceivedEventArgs获取自定义数据部分,然后查询eventArgs.Advertisement.ManufacturerData以获取BluetoothLEManufacturerData

private async void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
    var DataList = eventArgs.Advertisement.ManufacturerData;
    foreach (var temp in DataList)
    {
        var data = new byte[temp.Data.Length];
        using (var reader = DataReader.FromBuffer(temp.Data))
        {
            reader.ReadBytes(data);
        }
        var str = Encoding.ASCII.GetString(data);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM