public override void Initialize(XElement node, DirectoryInfo outputDir) { foreach (XAttribute tmpAttr in node.Attributes()) { if (tmpAttr.Name == "address") { Address = GetAddress(tmpAttr.Value); } if (tmpAttr.Name == "body") { Body = tmpAttr.Value; } if (tmpAttr.Name == "contact_name") { ContactName = tmpAttr.Value; } if (tmpAttr.Name == "date") { MessageDate = GetDate(tmpAttr.Value); } if (tmpAttr.Name == "type") { if (tmpAttr.Value == "1") { MessageType = SmsMessageType.Incoming; } else { MessageType = SmsMessageType.Outgoing; } } } }
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 } }