private void GetSystemConnectedOrPairedDevices() { try { //heart rate var guid = Guid.Parse("0000180d-0000-1000-8000-00805f9b34fb"); // SystemDevices = Adapter.GetSystemConnectedOrPairedDevices(new[] { guid }).Select(d => new DeviceListItemViewModel(d)).ToList(); // remove the GUID filter for test // Avoid to loose already IDevice with a connection, otherwise you can't close it // Keep the reference of already known devices and drop all not in returned list. var pairedOrConnectedDeviceWithNullGatt = Adapter.GetSystemConnectedOrPairedDevices(); SystemDevices.RemoveAll(sd => !pairedOrConnectedDeviceWithNullGatt.Any(p => p.Id == sd.Id)); SystemDevices.AddRange(pairedOrConnectedDeviceWithNullGatt.Where(d => !SystemDevices.Any(sd => sd.Id == d.Id)).Select(d => new DeviceListItemViewModel(d))); RaisePropertyChanged(() => SystemDevices); } catch (Exception ex) { Trace.Message("Failed to retreive system connected devices. {0}", ex.Message); } }