In WinRT possiamo interagire con i sensori dei device in modo estremamente semplice, il namespace Windows.Devices.Sensors espone una serie di classi che ci permettono l'accesso a tali sensori per recuperare informazioni dall'ambiente.
Con la classe LightSensor possiamo accedere al sensore di luce ambientale con il suo metodo statico GetDefault; con l'evento ReadingChanged possiamo intercettare il cambiamento di luminosità nell'ambiente registrato dal sensore.
var sensor = LightSensor.GetDefault(); if (sensor == null) return; sensor.ReadingChanged += (LightSensor sender, LightSensorReadingChangedEventArgs args) => { Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { textBlock1.Text = String.Format("Lux {0,5:0.00}", args.Reading.IlluminanceInLux); }); };
E' sempre importante verificare che l'istanza restituita da GetDefault non sia null, che si può verificare se il device non ha tale sensore.
Tra i parametri del metodo gestore dell'evento abbiamo LightSensorReadingChangedEventArgs che ci restituisce il valore corrente registrato dal sensore in termini di Lux, con un valore da 0 a 100.000 rispettivamente per buio completo e luce assoluta.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Intersect e Except per filtrare set di dati in TSql
Eliminare una project wiki di Azure DevOps
La gestione della riconnessione al server di Blazor in .NET 9
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
.NET Aspire per applicazioni distribuite
Il nuovo controllo Range di Blazor 9
Path addizionali per gli asset in ASP.NET Core MVC
Ridurre il reflow ottimizzando il CSS
Selettore CSS :has() e i suoi casi d'uso avanzati
Utilizzare una qualunque lista per i parametri di tipo params in C#
Recuperare App Service cancellati su Azure
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi