private async Task <bool> RegisterBackgroundTask() { // Unregister any previous exising background task UnregisterBackgroundTask(); _status += "Constructing task\n"; // Request access BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync(); // If denied if (status != BackgroundAccessStatus.AlwaysAllowed && status != BackgroundAccessStatus.AllowedSubjectToSystemPolicy) { return(false); } // Construct the background task var builder = new BackgroundTaskBuilder(); builder.Name = BACKGROUND_ENTRY_POINT; builder.TaskEntryPoint = BACKGROUND_ENTRY_POINT; builder.IsNetworkRequested = true; // Set trigger PushNotificationTrigger trigger = new PushNotificationTrigger(); builder.SetTrigger(trigger); // Register Background task BackgroundTaskRegistration registration = builder.Register(); _status += "Task registered\n"; return(true); }
private void RegisterBackgroundTask() { BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); PushNotificationTrigger trigger = new PushNotificationTrigger(); taskBuilder.SetTrigger(trigger); // Background tasks must live in separate DLL, and be included in the package manifest // Also, make sure that your main application project includes a reference to this DLL taskBuilder.TaskEntryPoint = TASK_ENTRY_POINT; taskBuilder.Name = TASK_NAME; try { BackgroundTaskRegistration task = taskBuilder.Register(); Debug.WriteLine("task registered"); task.Completed += BackgroundTaskCompleted; } catch (Exception ex) { Debug.WriteLine($"Error {ex.Message}"); //rootPage.NotifyUser("Registration error: " + ex.Message, NotifyType.ErrorMessage); UnregisterBackgroundTask(); } }
async private void activePush_Toggled(object sender, RoutedEventArgs e) { Jeedom.RequestViewModel.Instance.UpdateNotificationChannel(); BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); PushNotificationTrigger trigger = new PushNotificationTrigger(); taskBuilder.SetTrigger(trigger); // Background tasks must live in separate DLL, and be included in the package manifest // Also, make sure that your main application project includes a reference to this DLL taskBuilder.TaskEntryPoint = "Notification.NotificationActionBackgroundTask"; taskBuilder.Name = "NotificationBackgroundTask"; BackgroundTaskRegistration task = null; try { task = taskBuilder.Register(); task.Completed += OnCompleted; } catch (Exception ex) { if (null != task) { task.Unregister(true); task = null; } } }
public static void Register() { foreach (var iter in BackgroundTaskRegistration.AllTasks) { IBackgroundTaskRegistration mytask = iter.Value; if (mytask.Name == "ExampleBackgroundTask") { mytask.Unregister(true); break; } } var builder = new BackgroundTaskBuilder(); PushNotificationTrigger trigger = new PushNotificationTrigger(); builder.SetTrigger(trigger); builder.Name = "ExampleBackgroundTask"; builder.TaskEntryPoint = "Usergrid.Notifications.ExampleBackgroundTask"; ExampleBackgroundTask.task = builder.Register(); task.Progress += task_Progress; task.Completed += task_Completed; }
private void RegistTrigger() { // 既に登録されているBackground Taskがある場合は登録を解除する foreach (var iter in BackgroundTaskRegistration.AllTasks) { IBackgroundTaskRegistration task = iter.Value; if (task.Name == nameof(BackgroundTaskSample)) { task.Unregister(true); } } // Triggerを設定しBackground Taskを登録する BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); PushNotificationTrigger trigger = new PushNotificationTrigger(); taskBuilder.SetTrigger(trigger); taskBuilder.Name = nameof(BackgroundTaskSample); taskBuilder.TaskEntryPoint = typeof(BackgroundTaskSample).FullName; taskBuilder.Register(); }
public static IAsyncOperation <PushNotificationChannel> Run() { const string PushNotificationTaskName = "ToastNotifications"; var ns = new NotificationStore(); var channelTask = ns.Register(); if (GetRegisteredTask(PushNotificationTaskName) != null) { return(channelTask.AsAsyncOperation()); } ObtainLockScreenAccess(); var taskBuilder = new BackgroundTaskBuilder { Name = PushNotificationTaskName, TaskEntryPoint = typeof(PushBackgroundTask).FullName }; var trigger = new PushNotificationTrigger(); taskBuilder.SetTrigger(trigger); var internetCondition = new SystemCondition(SystemConditionType.InternetAvailable); taskBuilder.AddCondition(internetCondition); try { taskBuilder.Register(); } catch (Exception exception) { } return(channelTask.AsAsyncOperation()); }