private static async Task <bool> PerformMandatoryChecks() { bool available = false; try { var smsDevices = await DeviceInformation.FindAllAsync(SmsDevice2.GetDeviceSelector(), null); foreach (var smsDevice in smsDevices) { try { SmsDevice2 dev = SmsDevice2.FromId(smsDevice.Id); switch (dev.DeviceStatus) { case SmsDeviceStatus.Ready: { return(true); } } } catch { } } } catch { available = false; } return(available); }
private async void HandleArguments(ToastNotificationActivatedEventArgs args) { string arguments = args.Argument; string action = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("action=", StringComparison.InvariantCulture)).Split('=')[1]; string from = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("from=", StringComparison.InvariantCulture)).Split('=')[1]; string deviceid = args.Argument.Split('&').First(x => x.ToLower(new CultureInfo("en-US")).StartsWith("deviceid=", StringComparison.InvariantCulture)).Split('=')[1]; switch (action.ToLower(new CultureInfo("en-US"))) { case "reply": { try { string messagetosend = (string)args.UserInput["textBox"]; SmsDevice2 smsDevice = SmsDevice2.FromId(deviceid); await SmsUtils.SendTextMessageAsync(smsDevice, from, messagetosend); } catch { } break; } case "openthread": { ChatMenuItemControl selectedConvo = null; foreach (var convo in ViewModel.ChatConversations) { var contact = convo.ViewModel.Contact; foreach (var num in contact.Phones) { if (ContactUtils.ArePhoneNumbersMostLikelyTheSame(from, num.Number)) { selectedConvo = convo; break; } } if (selectedConvo != null) { break; } } if (selectedConvo != null) { ViewModel.SelectedItem = selectedConvo; } break; } } }
private async Task HandleTaskActions(IBackgroundTaskInstance taskInstance) { try { if (taskInstance.TriggerDetails is ToastNotificationActionTriggerDetail) { try { BadgeHandler.DecreaseBadgeNumber(); } catch { } var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail; string arguments = details.Argument; string action = details.Argument.Split('&').First(x => x.ToLower().StartsWith("action=")).Split('=')[1]; string from = details.Argument.Split('&').First(x => x.ToLower().StartsWith("from=")).Split('=')[1]; string deviceid = details.Argument.Split('&').First(x => x.ToLower().StartsWith("deviceid=")).Split('=')[1]; switch (action.ToLower()) { case "reply": { try { string messagetosend = (string)details.UserInput["textBox"]; SmsDevice2 smsDevice = SmsDevice2.FromId(deviceid); await SmsUtils.SendTextMessageAsync(smsDevice, from, messagetosend); } catch { } break; } case "openthread": { break; } } } } catch { } }
// Methods private static async Task <ObservableCollection <CellularLineControl> > GetSmsDevices() { ObservableCollection <CellularLineControl> collection = new ObservableCollection <CellularLineControl>(); var smsDevices = await DeviceInformation.FindAllAsync(SmsDevice2.GetDeviceSelector(), null); foreach (var smsDevice in smsDevices) { try { SmsDevice2 dev = SmsDevice2.FromId(smsDevice.Id); CellularLineControl control = new CellularLineControl(dev); collection.Add(control); } catch { } } return(collection); }
private async void btnSendSms_Click(object sender, RoutedEventArgs e) { try { var id = lbDevices.SelectedItem as string; var device = SmsDevice2.FromId(id); var message = new SmsTextMessage2(); message.Body = "test sms"; var messageLength = device.CalculateLength(message); message.To = txtTo.Text; var result = await device.SendMessageAndGetResultAsync(message); await new MessageDialog($"successfull: {result.IsSuccessful}").ShowAsync(); await new MessageDialog($"TransportFailureCause: {result.TransportFailureCause}").ShowAsync(); } catch (Exception ex) { await new MessageDialog(ex.Message).ShowAsync(); } }
private async void Load() { var smsDevices = await DeviceInformation.FindAllAsync(SmsDevice2.GetDeviceSelector(), null); foreach (var smsDevice in smsDevices) { try { SmsDevice2 dev = SmsDevice2.FromId(smsDevice.Id); CellularLineControl control = new CellularLineControl(dev); cellularlineControls.Add(control); CellularLineComboBox.Items.Add(new ComboBoxItem() { Content = control }); } catch { } } }