public async Task <IEnumerable <ScannerModel> > GetScannersAsync() { // String to be used to enumerate scanners var deviceSelector = ImageScanner.GetDeviceSelector(); var scanners = await DeviceInformation.FindAllAsync(deviceSelector); var result = scanners .Select(x => new ScannerModel { Id = x.Id, Name = x.Name, IsDefault = x.IsDefault, IsEnabled = x.IsEnabled, }); return(result); // Alternatively, a watcher can be used, which raises events as items are located/added/removed/updated: //var watcher = DeviceInformation.CreateWatcher(deviceSelector); //watcher.EnumerationCompleted += (sender, args) => Debug.WriteLine("Scanners enumerated"); //watcher.Added += (sender, args) => Debug.WriteLine("Scanner added - {0}", args.Name); //watcher.Removed += (sender, args) => Debug.WriteLine("Scanner removed - {0}", args.Id); //watcher.Updated += (sender, args) => Debug.WriteLine("Scanner updated - {0}", args.Id); //watcher.Start(); }