public static void RegisterToastNotificationBackgroundTasks()
        {
            try
            {
                SmsFilterRule         filter      = new SmsFilterRule(SmsMessageType.Text);
                SmsFilterActionType   actionType  = SmsFilterActionType.Accept;
                SmsFilterRules        filterRules = new SmsFilterRules(actionType);
                IList <SmsFilterRule> rules       = filterRules.Rules;
                rules.Add(filter);
                SmsMessageReceivedTrigger trigger = new SmsMessageReceivedTrigger(filterRules);

                RegisterBackgroundTask <SmsBackgroundTask>(trigger);
            }
            catch
            {
            }

            try
            {
                RegisterBackgroundTask <SmsReplyBackgroundTask>(new ToastNotificationActionTrigger());
            }
            catch
            {
            }
        }
        public static void RegisterToastNotificationBackgroundTasks()
        {
            try
            {
                SmsFilterActionType   actionType  = SmsFilterActionType.Accept;
                SmsFilterRules        filterRules = new SmsFilterRules(actionType);
                IList <SmsFilterRule> rules       = filterRules.Rules;

                SmsFilterRule filter = new SmsFilterRule(SmsMessageType.Text);
                rules.Add(filter);
                filter = new SmsFilterRule(SmsMessageType.Wap);
                rules.Add(filter);
                filter = new SmsFilterRule(SmsMessageType.Status);
                rules.Add(filter);
                filter = new SmsFilterRule(SmsMessageType.App);
                rules.Add(filter);

                SmsMessageReceivedTrigger trigger = new SmsMessageReceivedTrigger(filterRules);

                RegisterBackgroundTask <SmsBackgroundTask>(trigger);
            }
            catch
            {
            }

            // Was an experiment, causes double notifications if registered by design

            /*try
             * {
             *  var transports = await ChatMessageManager.GetTransportsAsync();
             *  foreach (var transport in transports)
             *  {
             *      if (!transport.IsAppSetAsNotificationProvider)// && transport.TransportKind == ChatMessageTransportKind.Text)
             *      {
             *          await transport.RequestSetAsNotificationProviderAsync();
             *      }
             *  }
             * }
             * catch
             * {
             *
             * }
             *
             * try
             * {
             *  RegisterBackgroundTask<ChatMessageNotificationBackgroundTask>(new ChatMessageNotificationTrigger());
             * }
             * catch
             * {
             *
             * }*/

            try
            {
                RegisterBackgroundTask <SmsReplyBackgroundTask>(new ToastNotificationActionTrigger());
            }
            catch
            {
            }
        }
Exemple #3
0
        static IBackgroundTaskRegistration Register()
        {
            var task = BackgroundTaskRegistration.AllTasks.Values.FirstOrDefault(x => x.Name == BackgroundTaskEntryPoint);

            if (task != null)
            {
                return(task);
            }

            var filterRule = new SmsFilterRule(SmsMessageType.Text);
            //filterRule.SenderNumbers.Add("111111111");
            //filterRule.SenderNumbers.Add("222222222");

            var filterRules = new SmsFilterRules(SmsFilterActionType.Accept);

            filterRules.Rules.Add(filterRule);

            var taskBuilder = new BackgroundTaskBuilder();

            taskBuilder.Name           = BackgroundTaskName;
            taskBuilder.TaskEntryPoint = BackgroundTaskEntryPoint;
            //taskBuilder.SetTrigger(new SmsMessageReceivedTrigger(filterRules));
            taskBuilder.SetTrigger(new UserNotificationChangedTrigger(NotificationKinds.Toast));

            return(taskBuilder.Register());
        }
        private void Register_Click(object sender, RoutedEventArgs e)
        {
            // Check to see that a filter action type is set
            if (AcceptImmediatelyButton.IsChecked == false && DropButton.IsChecked == false && PeekButton.IsChecked == false && AcceptButton.IsChecked == false)
            {
                rootPage.NotifyUser("Please set a filter action type", NotifyType.ErrorMessage);
                return;
            }

            // Check to see that a message type is set
            if (TextButton.IsChecked == false && AppButton.IsChecked == false && WapButton.IsChecked == false && BroadcastButton.IsChecked == false && VoicemailButton.IsChecked == false)
            {
                rootPage.NotifyUser("Please set a message type", NotifyType.ErrorMessage);
                return;
            }

            try
            {
                // Set filter action type
                SmsMessageType messageType = SmsMessageType.Text; // set as Text as default
                if (TextButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Text;
                }
                else if (AppButton.IsChecked == true)
                {
                    messageType = SmsMessageType.App;
                }
                else if (WapButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Wap;
                }
                else if (BroadcastButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Broadcast;
                }
                else if (VoicemailButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Voicemail;
                }

                // Create new filter rule (individual)
                SmsFilterRule filter = new SmsFilterRule(messageType);

                // Set filter action type
                SmsFilterActionType actionType = SmsFilterActionType.Accept; // set as Accept as default
                if (AcceptImmediatelyButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.AcceptImmediately;
                }
                else if (DropButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Drop;
                }
                else if (PeekButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Peek;
                }
                else if (AcceptButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Accept;
                }

                // Created set of filters for this application
                SmsFilterRules filterRules = new SmsFilterRules(actionType);
                IList<SmsFilterRule> rules = filterRules.Rules;
                rules.Add(filter);

                // Create a new background task builder.
                BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder();

                // Create a new SmsMessageReceivedTrigger.
                SmsMessageReceivedTrigger trigger = new SmsMessageReceivedTrigger(filterRules);

                // Associate the SmsReceived trigger with the background task builder.
                taskBuilder.SetTrigger(trigger);

                // Specify the background task to run when the trigger fires.
                taskBuilder.TaskEntryPoint = BackgroundTaskEntryPoint;

                // Name the background task.
                taskBuilder.Name = BackgroundTaskName;

                // Register the background task.
                BackgroundTaskRegistration taskRegistration = taskBuilder.Register();

                // Associate completed event handler with the new background task.
                taskRegistration.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);

                UpdateBackgroundTaskUIState(true);
                rootPage.NotifyUser("Registered SMS background task", NotifyType.StatusMessage);
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser(ex.ToString(), NotifyType.ErrorMessage);
            }
        }
        private void Register_Click(object sender, RoutedEventArgs e)
        {
            // Check to see that a filter action type is set
            if (AcceptImmediatelyButton.IsChecked == false && DropButton.IsChecked == false && PeekButton.IsChecked == false && AcceptButton.IsChecked == false)
            {
                rootPage.NotifyUser("Please set a filter action type", NotifyType.ErrorMessage);
                return;
            }

            // Check to see that a message type is set
            if (TextButton.IsChecked == false && AppButton.IsChecked == false && WapButton.IsChecked == false && BroadcastButton.IsChecked == false && VoicemailButton.IsChecked == false)
            {
                rootPage.NotifyUser("Please set a message type", NotifyType.ErrorMessage);
                return;
            }

            try
            {
                // Set filter action type
                SmsMessageType messageType = SmsMessageType.Text; // set as Text as default
                if (TextButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Text;
                }
                else if (AppButton.IsChecked == true)
                {
                    messageType = SmsMessageType.App;
                }
                else if (WapButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Wap;
                }
                else if (BroadcastButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Broadcast;
                }
                else if (VoicemailButton.IsChecked == true)
                {
                    messageType = SmsMessageType.Voicemail;
                }

                // Create new filter rule (individual)
                SmsFilterRule filter = new SmsFilterRule(messageType);

                // Set filter action type
                SmsFilterActionType actionType = SmsFilterActionType.Accept; // set as Accept as default
                if (AcceptImmediatelyButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.AcceptImmediately;
                }
                else if (DropButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Drop;
                }
                else if (PeekButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Peek;
                }
                else if (AcceptButton.IsChecked == true)
                {
                    actionType = SmsFilterActionType.Accept;
                }

                // Created set of filters for this application
                SmsFilterRules        filterRules = new SmsFilterRules(actionType);
                IList <SmsFilterRule> rules       = filterRules.Rules;
                rules.Add(filter);

                // Create a new background task builder.
                BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder();

                // Create a new SmsMessageReceivedTrigger.
                SmsMessageReceivedTrigger trigger = new SmsMessageReceivedTrigger(filterRules);

                // Associate the SmsReceived trigger with the background task builder.
                taskBuilder.SetTrigger(trigger);

                // Specify the background task to run when the trigger fires.
                taskBuilder.TaskEntryPoint = BackgroundTaskEntryPoint;

                // Name the background task.
                taskBuilder.Name = BackgroundTaskName;

                // Register the background task.
                BackgroundTaskRegistration taskRegistration = taskBuilder.Register();

                // Associate completed event handler with the new background task.
                taskRegistration.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);

                UpdateBackgroundTaskUIState(true);
                rootPage.NotifyUser("Registered SMS background task", NotifyType.StatusMessage);
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser(ex.ToString(), NotifyType.ErrorMessage);
            }
        }
Exemple #6
0
        private async void Register_BackgroundTask()
        {
            var settings = ApplicationData.Current.LocalSettings;

            try
            {
                var access = await BackgroundExecutionManager.RequestAccessAsync();

                switch (access)
                {
                case BackgroundAccessStatus.Unspecified:
                    break;

                case BackgroundAccessStatus.AlwaysAllowed:
                    break;

                case BackgroundAccessStatus.AllowedSubjectToSystemPolicy:
                    break;

                case BackgroundAccessStatus.DeniedBySystemPolicy:
                    break;

                case BackgroundAccessStatus.DeniedByUser:
                    break;

                default:
                    break;
                }

                SmsMessageType _messageType = SmsMessageType.Text; // set as Text as default
                _messageType = SmsMessageType.Text;

                SmsFilterRule _filterRule = new SmsFilterRule(_messageType);


                SmsFilterActionType _type = SmsFilterActionType.Accept;
                _type = SmsFilterActionType.Accept;


                SmsFilterRules _Rules = new SmsFilterRules(_type);

                IList <SmsFilterRule> rules = _Rules.Rules;

                rules.Add(_filterRule);

                BackgroundTaskBuilder     taskBuilder = new BackgroundTaskBuilder();
                SmsMessageReceivedTrigger trigger     = new SmsMessageReceivedTrigger(_Rules);

                taskBuilder.SetTrigger(trigger);
                taskBuilder.TaskEntryPoint = BackgroundTaskEntryPoint;
                taskBuilder.Name           = BackgroundTaskName;

                foreach (var cur in BackgroundTaskRegistration.AllTasks)
                {
                    if (cur.Value.Name == BackgroundTaskName)
                    {
                        return;
                    }
                }

                BackgroundTaskRegistration taskRegistration = taskBuilder.Register();

                taskRegistration.Completed += new BackgroundTaskCompletedEventHandler(OnCompleted);

                //LOG
            }
            catch (Exception ex)
            {
                //LOG
            }
        }