Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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();
        }
Example #6
0
        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());
        }