2014-09-01 6 views
2

Мне нужно реализовать задачу геофонирования в моем приложении. Я использовал в основном код из образцов геообъектов в MSDN. Независимо от того, что я делаю, он всегда заканчивается отладчиком App.g.i.cs, пытаясь получить доступ к BackgroundExecutionManager.Геофонная фоновая задача в Windows Phone 8.1 - Невозможно запросить доступ из BackgroundExecutionManager

public async static void Register() 
    { 
     if (!IsTaskRegistered()) 
     { 
      var result = await BackgroundExecutionManager.RequestAccessAsync(); 
      var builder = new BackgroundTaskBuilder(); 

      builder.Name = TaskName; 
      builder.TaskEntryPoint = typeof(GeofenceTask).FullName; 
      builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence)); 

      builder.Register(); 
     } 
    } 

Он никогда не переходит в var builder = new BackgroundTaskBuilder(); - всегда заканчивается раньше. Что, возможно, я делаю неправильно?

КПП. IsTaskRegistered() работает нормально, но на всякий случай:

public static bool IsTaskRegistered() 
    { 
     var taskRegistered = false; 
     var entry = BackgroundTaskRegistration.AllTasks.FirstOrDefault(kvp => kvp.Value.Name == TaskName); 

     if (entry.Value != null) 
      taskRegistered = true; 

     return taskRegistered; 
    } 

ответ

1

Это может произойти, если вы не заявили о каких-либо фоновую задачу в манифест приложения.

Вам нужно перейти на вкладку «Объявления», а затем добавить новую задачу фона с типом местоположения и заполнить ее «точкой входа» следующим образом: «BackgroundTask.GeofenceTask». «Исполняемая» и «Начальная страница» должны быть пустыми.