Фоновая задача геозоны в Windows Phone 8.1 — не удается запросить доступ из BackgroundExecutionManager

Мне нужно реализовать фоновую задачу геозоны в моем приложении. В основном я использовал код из образцов геозоны в MSDN. Независимо от того, что я делаю, это всегда заканчивается отладчиком App.g.i.cs при попытке получить доступ к 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;
    }

person Andrzej    schedule 01.09.2014    source источник


Ответы (1)


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

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

person Jogy    schedule 01.09.2014