コード例 #1
0
ファイル: ShellViewModel.cs プロジェクト: dw5/W10ChattySMS
        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);
        }
コード例 #2
0
ファイル: Shell.xaml.cs プロジェクト: dw5/W10ChattySMS
        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;
            }
            }
        }
コード例 #3
0
        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
            {
            }
        }
コード例 #4
0
        // 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);
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
        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
                {
                }
            }
        }