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
Eseguire attività pianificate con Azure Container Jobs
Migrare una service connection a workload identity federation in Azure DevOps
Effettuare il binding di date in Blazor
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Potenziare Azure AI Search con la ricerca vettoriale
Utilizzare database e servizi con gli add-on di Container App
C# 12: Cosa c'è di nuovo e interessante
Usare il versioning con i controller di ASP.NET Core Web API
Aggiungere interattività lato server in Blazor 8
Hosting di componenti WebAssembly in un'applicazione Blazor static
Determinare lo stato di un pod in Kubernetes
Utilizzare un service principal per accedere a Azure Container Registry
I più letti di oggi
- Nuova versione per jQuery e prima alpha per jQuery Mobile
- Paginare i risultati con QuickGrid in Blazor
- Utilizzare il trigger SQL con le Azure Function
- Eliminare una determinata proprietà da un oggetto JavaScript
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Modern web apps with Blazor