/// <summary> /// Clears all devices /// </summary> public void ClearAllDevices() { try { BluetoothLEDevicesLock.Wait(); BluetoothLEDevices.Clear(); } finally { BluetoothLEDevicesLock.Release(); } }
/// <summary> /// Starts enumeration of bluetooth device /// </summary> public void StartEnumeration() { // Additional properties we would like about the device. string[] requestedProperties = { "System.Devices.Aep.Category", "System.Devices.Aep.ContainerId", "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected", "System.Devices.Aep.IsPaired", "System.Devices.Aep.IsPresent", "System.Devices.Aep.ProtocolId", "System.Devices.Aep.Bluetooth.Le.IsConnectable", "System.Devices.Aep.SignalStrength" }; // BT_Code: Currently Bluetooth APIs don't provide a selector to get ALL devices that are both paired and non-paired. deviceWatcher = DeviceInformation.CreateWatcher( BTLEDeviceWatcherAQSString, requestedProperties, DeviceInformationKind.AssociationEndpoint); // Register event handlers before starting the watcher. deviceWatcher.Added += DeviceWatcher_Added; deviceWatcher.Updated += DeviceWatcher_Updated; deviceWatcher.Removed += DeviceWatcher_Removed; deviceWatcher.EnumerationCompleted += DeviceWatcher_EnumerationCompleted; deviceWatcher.Stopped += DeviceWatcher_Stopped; advertisementWatcher = new BluetoothLEAdvertisementWatcher(); advertisementWatcher.ScanningMode = BluetoothLEScanningMode.Active; advertisementWatcher.Received += AdvertisementWatcher_Received; BluetoothLEDevices.Clear(); deviceWatcher.Start(); advertisementWatcher.Start(); IsEnumerating = true; EnumerationFinished = false; }