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
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Utilizzare l nesting nativo dei CSS
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Utilizzare WhenEach per processare i risultati di una lista di task
Utilizzare Hybrid Cache in .NET 9
Creare una libreria CSS universale: Nav menu
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Proteggere le risorse Azure con private link e private endpoints
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Utilizzare Azure Cosmos DB con i vettori