Skip to content

Receiving cross-platform advertisements in Windows 10 #2

@dustedrob

Description

@dustedrob

Hi, i've been following the session from https://youtu.be/_z0MKbpXXOw and it's been very helpful. Right now Im trying to read the service uuids broadcasted by an Android peripheral from Windows 10 like this:

 private void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher sender,
    BluetoothLEAdvertisementReceivedEventArgs advertisementArg)
{
    Debug.WriteLine(" serviceUuids for advertisement " + advertisementArg.Advertisement.ServiceUuids.Count);
    foreach(Guid guid in advertisementArg.Advertisement.ServiceUuids)
    {
        Debug.WriteLine("uuid is " + guid.ToString() + " address is " +advertisementArg.BluetoothAddress+ " name is "+ advertisementArg.Advertisement.LocalName);
    }

}
However, when an Advertisement from an Android peripheral is received, the size of the serviceUuids list is always 0.

This is weird because the service data is correctly placed in the BluetoothLeAdvertisementDataSection of the advertisement:

                IList<BluetoothLEAdvertisementDataSection> dataSection = advertisementArg.Advertisement.DataSections;

                foreach (BluetoothLEAdvertisementDataSection ad in dataSection)
            {
           );

                if (ad.Data.Length > 0)
                {
                    DataReader dataReader = DataReader.FromBuffer(ad.Data);
                    byte[] bytes = new byte[ad.Data.Length];


                    dataReader.ReadBytes(bytes);

                    if (bytes.Length > 0)
                    {

                        string data = System.Text.Encoding.UTF8.GetString(crcBytes, 0, crcBytes.Length);

                        Debug.WriteLine("ANDROID DEVICE FOUND " + data);
                    }

                }

            }

So it's just the service uuid that is missing.

The service data is added in the Android peripheral like this:

AdvertiseData.Builder dataBuilder = new AdvertiseData.Builder();

dataBuilder.addServiceData(new ParcelUuid(bluetoothUuid), advertiseData.getBytes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions