I am using the Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher object on a UWP professional application to manage groups of bluetooth devices.
Each device send an advertisement every 250ms. As my understanding, windows makes the scan to have advertisements of all devices around. Then all the advertisement will be forwarded to the BluetoothLEAdvertisementWatcher and the application receives the advertisements via BluetoothLEAdvertisementWatcher.
As the devices advertise the data every 250ms, my application should receive the advertisement every 250ms via BluetoothLEAdvertisementWatcher.
However, there are a lot of cases that the advertisements are missing. Most of the time, my application receives the next advertisement of a device after 2-4 seconds.
Sometimes, it is more than 10 seconds. There is still some cases the application receives the advertisement after 250ms but very rarely.
So my question is:
What is the mechanism of Windows when it manage the advertisement of BLE devices around? Why the application cannot receive the advertisements of the device after every 250ms as the device advertises the data every 250ms?