Le API di localizzazione di WinRT permettono di monitorare quando un dispositivo entra (ed esce) da determinate aree definite da oggetti Geofence.
L'area può essere definita da latitudine, longitudine, raggio e possono essere impostati tempi di permanenza oltre all'evento, se entrata o uscita, di cui essere notificati.
string id = "GeofenceId"; var position = new BasicGeoposition(); position.Latitude = 40; position.Longitude = -120; var geocircle = new Geocircle(position, 100); var mask = MonitoredGeofenceStates.Entered | MonitoredGeofenceStates.Exited; var area = new Geofence(id, geocircle, mask, false); GeofenceMonitor.Current.Geofences.Clear(); GeofenceMonitor.Current.Geofences.Add(area); GeofenceMonitor.Current.GeofenceStateChanged += (GeofenceMonitor obj, object args) => { var reports = obj.ReadReports(); Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { foreach (GeofenceStateChangeReport report in reports) { log.AppendLine(report.Geofence.Id); log.AppendLine(report.NewState.ToString()); } status.Text = log.ToString(); }); };
Tutto è gestito dall'oggetto GeofenceMonitor ed il monitoraggio inizia quando aggiungiamo un Geofence alla collezione Geofences. Grazie all'evento GeofenceStateChanged si è notificati quando l'utente entra e esce dall'area.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Ottenere un token di accesso per una GitHub App
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Utilizzare Azure AI Studio per testare i modelli AI
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Implementare l'infinite scroll con QuickGrid in Blazor Server
Disabilitare automaticamente un workflow di GitHub (parte 2)
Recuperare l'ultima versione di una release di GitHub
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento