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 { } }
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); } }
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 } }