地理围栏不会在前台上升事件
Geofencing doesn't rise event in foreground
这是我第一次使用地理围栏开发应用程序。我有问题,当设备进入所需的竞技场时,地理围栏不会引发事件。我检查了 msdn,一切都应该没问题。这是我的代码:
var _geolocator = new Geolocator();
BasicGeoposition pitchPosition;
pitchPosition.Latitude = 45.045213;
pitchPosition.Longitude = 19.040611;
pitchPosition.Altitude = 0.0;
double radius = 300;
Geocircle shape = new Geocircle(pitchPosition,radius);
MonitoredGeofenceStates monitoredGeofenceStates = MonitoredGeofenceStates.Entered;
TimeSpan timeToTrigger = TimeSpan.FromSeconds(1);
TimeSpan activeTimeSpan = TimeSpan.MaxValue;
DateTimeOffset startTime = DateTime.Now;
var _geofence = new Geofence(GeofenceId,shape,monitoredGeofenceStates,false,timeToTrigger,startTime,activeTimeSpan); GeofenceMonitor.Current.GeofenceStateChanged += OnGeofenceStateChanged;
任何帮助将不胜感激:)
首先也是最重要的:您没有将地理围栏添加到监视器中:
GeofenceMonitor.Current.Geofences.Add(_geofence);
另外你应该考虑更长的停留时间,这样事件就有更多的时间来处理。有时 phone 上的地理围栏监视器需要一些时间来学习(尤其是在模拟器中)。
例如:如果您的地理围栏很小并且您正在高速穿过它,那么您的事件很可能根本不会触发。一开始,尝试设置大栅栏并慢慢接近它们。随着时间的推移,地理围栏监视器会根据您的移动配置文件进行调整。
这是我第一次使用地理围栏开发应用程序。我有问题,当设备进入所需的竞技场时,地理围栏不会引发事件。我检查了 msdn,一切都应该没问题。这是我的代码:
var _geolocator = new Geolocator();
BasicGeoposition pitchPosition;
pitchPosition.Latitude = 45.045213;
pitchPosition.Longitude = 19.040611;
pitchPosition.Altitude = 0.0;
double radius = 300;
Geocircle shape = new Geocircle(pitchPosition,radius);
MonitoredGeofenceStates monitoredGeofenceStates = MonitoredGeofenceStates.Entered;
TimeSpan timeToTrigger = TimeSpan.FromSeconds(1);
TimeSpan activeTimeSpan = TimeSpan.MaxValue;
DateTimeOffset startTime = DateTime.Now;
var _geofence = new Geofence(GeofenceId,shape,monitoredGeofenceStates,false,timeToTrigger,startTime,activeTimeSpan); GeofenceMonitor.Current.GeofenceStateChanged += OnGeofenceStateChanged;
任何帮助将不胜感激:)
首先也是最重要的:您没有将地理围栏添加到监视器中:
GeofenceMonitor.Current.Geofences.Add(_geofence);
另外你应该考虑更长的停留时间,这样事件就有更多的时间来处理。有时 phone 上的地理围栏监视器需要一些时间来学习(尤其是在模拟器中)。
例如:如果您的地理围栏很小并且您正在高速穿过它,那么您的事件很可能根本不会触发。一开始,尝试设置大栅栏并慢慢接近它们。随着时间的推移,地理围栏监视器会根据您的移动配置文件进行调整。