async void RegisterTask(DeviceWatcherTrigger deviceWatcherTrigger) { System.Diagnostics.Debug.WriteLine("[RegisterTask] Register the background task."); // // Check for existing registrations of this background task. // BackgroundExecutionManager.RemoveAccess(); var access = await BackgroundExecutionManager.RequestAccessAsync(); foreach (var task in BackgroundTaskRegistration.AllTasks) { if (task.Value.Name == authBGTaskName) { taskRegistered = true; //task.Value.Unregister(true); break; } } if (!taskRegistered) { if (access == BackgroundAccessStatus.AllowedSubjectToSystemPolicy) { BackgroundTaskBuilder authTaskBuilder = new BackgroundTaskBuilder(); authTaskBuilder.Name = authBGTaskName; SecondaryAuthenticationFactorAuthenticationTrigger myTrigger = new SecondaryAuthenticationFactorAuthenticationTrigger(); authTaskBuilder.TaskEntryPoint = authBGTaskEntryPoint; authTaskBuilder.SetTrigger(myTrigger); BackgroundTaskRegistration taskReg = authTaskBuilder.Register(); BackgroundTaskBuilder plugTaskBuilder = new BackgroundTaskBuilder(); plugTaskBuilder.Name = authBGTaskName; plugTaskBuilder.TaskEntryPoint = authBGTaskEntryPoint; plugTaskBuilder.SetTrigger(deviceWatcherTrigger); BackgroundTaskRegistration taskReg2 = plugTaskBuilder.Register(); //String taskRegName = taskReg.Name; //BackgroundTaskBuilder rebootTaskBuilder = new BackgroundTaskBuilder(); //rebootTaskBuilder.Name = authBGTaskName; //rebootTaskBuilder.TaskEntryPoint = authBGTaskEntryPoint; //SystemTrigger trigger = new SystemTrigger(SystemTriggerType.UserPresent, false); //rebootTaskBuilder.SetTrigger(trigger); //BackgroundTaskRegistration taskReg3 = rebootTaskBuilder.Register(); //String taskRegName = taskReg.Name; //taskReg.Progress += OnBgTaskProgress; System.Diagnostics.Debug.WriteLine("[RegisterTask] Background task registration is completed."); taskRegistered = true; } } }
async void RegisterTask() { System.Diagnostics.Debug.WriteLine("Register the background task."); // // Check for existing registrations of this background task. // BackgroundExecutionManager.RemoveAccess(); var access = await BackgroundExecutionManager.RequestAccessAsync(); foreach (var task in BackgroundTaskRegistration.AllTasks) { if (task.Value.Name == myBGTaskName) { System.Diagnostics.Debug.WriteLine("Task already registered"); taskRegistered = true; break; } } if (!taskRegistered) { System.Diagnostics.Debug.WriteLine("Registering Task"); if (access == BackgroundAccessStatus.AllowedSubjectToSystemPolicy) { BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder() { Name = myBGTaskName }; // Create the trigger. SecondaryAuthenticationFactorAuthenticationTrigger myTrigger = new SecondaryAuthenticationFactorAuthenticationTrigger(); taskBuilder.TaskEntryPoint = myBGTaskEntryPoint; taskBuilder.SetTrigger(myTrigger); BackgroundTaskRegistration taskReg = taskBuilder.Register(); String taskRegName = taskReg.Name; taskReg.Progress += OnBgTaskProgress; System.Diagnostics.Debug.WriteLine("Background task registration is completed."); taskRegistered = true; } } }