Nello script #79 abbiamo visto come sia possibile conoscere i device collegati grazie alla classe DeviceInformation e al metodo FindAllAsync.
DeviceInformation espone anche il metodo CreateWatcher, con il quale possiamo creare un oggetto DeviceWatcher e conoscere quando una periferica viene collegata o rimossa.
DeviceWatcher per questo espone gli eventi Added, Removed e EnumerationCompleted che scattano rispettivamente all'aggiunta, rimozione e completamento dell'enumerazione di tutte.
DeviceWatcher si mette in ascolto dopo l'invocazione del metodo Start.
var log = new StringBuilder(); DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice); watcher.EnumerationCompleted += async (DeviceWatcher obj, object args) => { log.AppendLine("EnumerationCompleted"); await Log(log); }; watcher.Added += async (DeviceWatcher obj, DeviceInformation args) => { log.AppendLine("Added "+args.Id); foreach (var prop in args.Properties) { log.AppendFormat(" Propertiey Key {0} Value {1} {2}", prop.Key, prop.Value, Environment.NewLine); } await Log(log); }; watcher.Removed += async (DeviceWatcher obj, DeviceInformationUpdate args) => { log.AppendLine("Removed " + args.Id); foreach (var prop in args.Properties) { log.AppendFormat(" Propertiey Key {0} Value {1} {2}", prop.Key, prop.Value, Environment.NewLine); } await Log(log); }; watcher.Start();

Come possiamo vedere nell'esempio, il metodo CreateWatcher può accettare come parametro l'enum DeviceClass con cui mettersi in ascolto solo per specifiche famiglie di device.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire stili a livello di libreria in Angular
Creare una libreria CSS universale - Rotazione degli elementi
Applicare un filtro per recuperare alcune issue di GitHub
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Migliorare l'organizzazione delle risorse con Azure Policy
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Aggiornare a .NET 9 su Azure App Service
Conoscere il rendering Server o WebAssembly a runtime in Blazor