Come abbiamo visto nello script #78, grazie all'uso dei sensori possiamo conoscere molte informazioni sullo stato fisico del device o dell'ambiente che lo circonda.
All'interno del namespace Windows.Devices.Sensors troviamo la classe SimpleOrientationSensor, che permette di conoscere l'angolo di rotazione oltreché se il dispositivo è rivolto verso il basso o verso l'alto (faccia giù o faccia su).
Come gli altri sensori, con il metodo GetDefault ne recuperiamo una istanza che ci permette l'accesso, con GetCurrentOrientation e con l'evento OrientationChanged possiamo recuperare l'orientamento corrente in modo puntuale o a seguito di un cambiamento.
var str = new StringBuilder(); var sensor = SimpleOrientationSensor.GetDefault(); if (sensor == null) return; var orientation = sensor.GetCurrentOrientation(); str.AppendLine(orientation.ToString()); switch (orientation) { case SimpleOrientation.NotRotated: break; case SimpleOrientation.Rotated90DegreesCounterclockwise: break; case SimpleOrientation.Rotated180DegreesCounterclockwise: break; case SimpleOrientation.Rotated270DegreesCounterclockwise: break; case SimpleOrientation.Faceup: break; case SimpleOrientation.Facedown: break; } sensor.OrientationChanged += (SimpleOrientationSensor obj, SimpleOrientationSensorOrientationChangedEventArgs args) => { Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { str.AppendLine(args.Orientation.ToString()); textBlock1.Text = str.ToString(); }); };
L'orientamento è espresso dall'enumerato SimpleOrientation con i valori NotRotated,Rotated90DegreesCounterclockwise,Rotated180DegreesCounterclockwise,Rotated270DegreesCounterclockwise,Faceup e Facedown. Questi ultimi indicano proprio se il device ha lo schermo rivolto verso l'alto o verso il basso.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Gestire i dati con Azure Cosmos DB Data Explorer
Gestire il colore CSS con HWB
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Utilizzare database e servizi con gli add-on di Container App
Criptare la comunicazione con mTLS in Azure Container Apps
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Generare token per autenicarsi sulle API di GitHub
Miglioramenti agli screen reader e al contrasto in Angular