Curso Windows Phone – Como implementar o envio de SMS a partir de aplicações para Windows Phone 7

Olá, tudo bom?

Caso você esteja desenvolvendo APPs para Windows Phone (WP7) e deseja saber como fazer para que sua aplicação envie um SMS aos seus contatos, segue um exemplo de código (muito simples e funcional):


public void EnviarSMS(string Texto)
{
   //A classe SmsComposeTask pertence ao namespace Microsoft.Phone.Tasks
   SmsComposeTask sms = new SmsComposeTask();
   sms.Body = Texto;
   sms.Show();
}

Após a chamada ao método Show() o aplicativo de SMS nativo do Windows Phone fica disponível já indicando o texto informado ao método, porém você pode alterar o texto e é claro indicar para quem deseja enviar a mensagem.

Fica a dica!

Eduardo Henrique Rizo

Posts relacionados:

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

Post relacionado:

Curso Windows Phone – Tópicos

12 comentários em “Curso Windows Phone – Como implementar o envio de SMS a partir de aplicações para Windows Phone 7”

  1. Pingback: Calculadora do Cidadão – Aplicativo para Windows Phone 7 – WP7 « Blog do Eduardo H. Rizo

  2. Pingback: Curso Windows Phone – Tópicos « Blog do Eduardo H. Rizo

  3. Olá Eduardo, eu tenho uma List ConteudoSMS que contém uma lista da refeição do dia do restaurante universitário. Eu quero fazer um método para compartilhar por SMS, e quero colocar o conteúdo dessa lista dentro da mensagem, para quando o usuário clicar no botão de compartilhar, a lista da refeição apareça no corpo da mensagem. Como faço isso? Como faço para o sms.body receber essa lista? Agradeço muitíssimo.

    1. Bom dia Robledo, tudo bom?
      Deixa eu ver se entendi: Cada item do seu ListBox seria uma opção de refeição existente em um determinado dia no RU?
      Se sim, o que você deseja fazer seria percorrer esse ListBox, pegar o valor existente em cada opção e então ir concatenando isso no corpo do SMS?

      Abraços,
      Eduardo H. Rizo

      1. Assim: Eu tenho uma List ConteudoSMS = new List();
        Ela guarda a refeição do dia do restaurante, exemplo: Arroz, feijão, assado de panela, farofa e suco de maracujá.
        Agora eu quero que essa refeição passe para o corpo da mensagem SMS.
        Estou tentando fazer assim no método:

        public void OnClickEnviarSMS(object sender, EventArgs e)
        {
        //A classe SmsComposeTask pertence ao namespace Microsoft.Phone.Tasks
        SmsComposeTask sms = new SmsComposeTask();
        foreach (Itens item in ConteudoSMS)
        {
        sms.Body = “” + item;
        sms.Show();
        }

        }

        Itens tem a sua classe:
        public class Itens
        {
        public string Item { get; set; }

        public Itens()
        {
        }
        }

        Porém quando mando executar, a mensagem que aparece no corpo da mensagem no emulador é: “RU.Cardapio.Src.Classes.Itens”.
        Eu queria que aparecesse: “Arroz, feijão, assado de panela, farofa e suco de maracujá”.
        Consegue me ajudar? 🙂

        Att,
        Robledo

      2. Opa, tudo bom?
        Troque seu foreach conforme segue abaixo:

        foreach (Itens i in ConteudoSMS)
        {
        sms.Body = “” + i.item;
        sms.Show();
        }

        O teu erro é que você está pedindo para exibir cada elemento da lista ConteudoSMS e não a propriedade onde a informação está inserida.

        Abraços,
        Eduardo H. Rizo

  4. Bom dia Eduardo
    Novamente estou aqui, parabéns pelo blog, uma dúvida, ainda não implementei o código de envio de sms via aplicação, mas verificando em outros blogs, o envio do sms precisa que o usuário aperta o botão enviar, ou existe a possibilidade de enviar automaticamente?
    Obrigado

    1. Olá Anderson, tudo bom?

      Para envio de SMS o desenvolvedor tem que fazer uso de um launcher do WP, ou seja, ele faz chamada a uma aplicação que é intrínseca ao telefone e passa para ela parâmetros que serão utilizados para preencher as informações, sendo assim, respondendo sua pergunta, não temos como enviar o SMS sem a intervenção do usuário. OK?

      Abraços,
      Eduardo H. Rizo

  5. Olá Eduardo, novamente venho lhe pedir sua excelente ajuda. Já falei com você uns comentários acima sobre um problema que tenho e não consigo solucionar, tinha deixado de lado um tempo, mas agora quero muito conseguir resolver. Vou tentar explicar bem.
    Eu tenho uma tela XAML com um Textblock assim:

    Eu queria pegar o conteúdo desse Text que tem o Binding e passar para o SmsComposeTask para poder enviar o conteúdo por um SMS. O conteúdo é uma lista da refeição de um restaurante universitário do dia (Arroz, feijão, frango ao molho, farofa…), no entanto já tentei fazer da maneira que vc havia me falado, do jeito que outros amigos me disseram, mas não consigo.

    Existe outro Textblock no código assim:

    Se eu fizer assim, ele funciona normal:
    private void OnClickEnviarSMS(object sender, EventArgs e)
    {
    SmsComposeTask sms = new SmsComposeTask();
    sms.Body = mensagemerro.Text;
    sms.Show(); //Aparece “O cardápio está indisponível agora…”
    }

    Agora se eu fizer do mesmo jeito com o outro textblock aparece isso:
    private void OnClickEnviarSMS(object sender, EventArgs e)
    {
    SmsComposeTask sms = new SmsComposeTask();
    sms.Body = comida1.Text;
    sms.Show(); //Não aparece nada, fica em branco
    }

    Ou assim:
    private void OnClickEnviarSMS(object sender, EventArgs e)
    {
    SmsComposeTask sms = new SmsComposeTask();
    sms.Body = comida1.ToString();
    sms.Show(); //Aparece “System.Windows.Controls.Textblock”
    }

    Por favor, se puder me ajude mesmo.
    Att,
    Robledo

    1. Os textblocks não apareceram, eles são assim: o primeiro:
      Textblock x:Name=”comida1″ Text=”{Binding Item}”

      E o segundo que menciono é assim:
      Textblock x:Name=”mensagemerro” Text=”O cardápio está indisponível agora…”

Deixe um comentário