Conoscere quando l'utente entra in una specifica area nelle Universal App

di Alessio Leoncini, in WinRT 8.1,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi