Windows phone 8 如何在Windows Phone上处理重叠的地理围栏

Windows phone 8 如何在Windows Phone上处理重叠的地理围栏,windows-phone-8,windows-phone-8.1,overlapping,geofencing,Windows Phone 8,Windows Phone 8.1,Overlapping,Geofencing,我正在Windows Phone上构建地理围栏应用程序。目前的版本包括大约100个地理围栏,其中一些与另一些重叠。我编写了一个后台任务,并将触发器设置为地理围栏的输入状态。当我外出测试我的应用程序时,背景任务不会对与其他应用程序重叠的地理围栏做出反应 这是回溯任务中的代码: public void Run(IBackgroundTaskInstance taskInstance) { var reports = GeofenceMonitor.Current.ReadReports();

我正在Windows Phone上构建地理围栏应用程序。目前的版本包括大约100个地理围栏,其中一些与另一些重叠。我编写了一个后台任务,并将触发器设置为地理围栏的输入状态。当我外出测试我的应用程序时,背景任务不会对与其他应用程序重叠的地理围栏做出反应

这是回溯任务中的代码:

public void Run(IBackgroundTaskInstance taskInstance)
{
    var reports = GeofenceMonitor.Current.ReadReports();
    var report = reports.FirstOrDefault(r => (r.Geofence.Id == "testID") && (r.NewState == GeofenceState.Entered));

if (report == null) return;

var toastXmlContent = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02);

var txtNodes = toastXmlContent.GetElementsByTagName("text");
txtNodes[0].AppendChild(toastXmlContent.CreateTextNode("Geofence entered!"));
txtNodes[1].AppendChild(toastXmlContent.CreateTextNode(report.Geofence.Id));

var toast = new ToastNotification(toastXmlContent);
var toastNotifier = ToastNotificationManager.CreateToastNotifier();
toastNotifier.Show(toast);
}

有人知道如何处理Windows Phone上重叠的地理围栏吗


谢谢

您是否尝试过删除where Id==“testId”并得到所有围栏的通知?是的,我已经尝试过了。问题似乎在于没有定期启动后台任务来检查手机的位置是否在新的地理围栏内。