Windows 10 Mobile(10.0.14393)后台任务为地理围栏(LocationTrigger)

本文关键字:LocationTrigger 后台任务 14393 Windows Mobile | 更新日期: 2023-09-27 18:04:24

自从10.0.14393 (Anniversery Update)以来,LocationTrigger似乎不起作用。我:

  • Windows Phone 8.1应用程序(也适用于UWP应用程序)
  • 输出到Windows Runtime Component库(.winmd)的便携式库
  • 具有Location功能的后台任务声明(设置为库作为入口)。
  • 访问BackgroundExecutionManager.RequestAccessAsync()
  • Geofence类型的LocationTrigger

后台任务不会被触发。获得访问权限后的注册/任务代码:

public sealed class GeofenceTask : IBackgroundTask
{
    public static void Register()
    {
        var taskName = nameof(GeofenceTask);
        foreach (var n in BackgroundTaskRegistration.AllTasks.Where(n => n.Value.Name == taskName))
        {
            n.Value.Unregister(true);
            break;
        }
        var builder = new BackgroundTaskBuilder {Name = taskName, TaskEntryPoint = typeof (GeofenceTask).FullName};
        builder.SetTrigger(new LocationTrigger(LocationTriggerType.Geofence));
        builder.Register();
    }
    public void Run(IBackgroundTaskInstance taskInstance)
    {
        // Do magic.
    }
}

在Windows Phone 8.1设备或模拟器上运行。在更新之前,它也可以在Windows 10 Mobile上运行。到目前为止有什么已知的解决方案吗?

Windows 10 Mobile(10.0.14393)后台任务为地理围栏(LocationTrigger)

我也有这样的问题,但简单的TimeTrigger任务。任务注册后没有任何错误,它在Visual studio的"生命周期事件"中可见,但它没有在预定时间启动。通常,但不总是,有助于下一步。

  1. 拒绝在Windows设置中访问应用程序以在后台运行
  2. 重启设备
  3. 允许访问
  4. 运行app注册任务

这个问题已经开始发生在通用Windows应用程序开发工具更新到1.4.1版本后,但我不确定这一点。